2024年6月29日土曜日

Arduino nano PWM制御

 暑いので、PCから抜いたFANで扇風機を作ろうと、、、

手元にあったのが、9cmのDC FAN 4ピンでPWMで制御可能との事

PINハイは下記と通り。

PWM端子はプルアップされており、12Vがそのまま出てきました。
Arduinoを壊すといけないので、Trをつけて駆動。




という事で、Arduinoの古いスケッチを漁る。

確かボリュームでPWM制御を作った記憶がある。

ありました。下記の感じでできます。

これは、PWMの周期を変える事が目的のソースコードです。

PWM周期を変えなければもっと簡単だと思います。

最初5kHz周期にしてみたが、FANの風の感じが荒く。。。

50Hzにしたら細かい制御ができるような気がします。

#include <avr/io.h>


#define PWMPin 10

#define dimmerPIN A0

#define LEDPin 13



unsigned int frq = 50; // 周波数

float duty = 0.0; // 指定したいデューティ比

int dimmerValue = 0;

int oldValue = 0;

int ledValue = 0;

int dledpin = 0;



void setup() {

pinMode(PWMPin, OUTPUT);

pinMode(LEDPin, OUTPUT);

pinMode(dimmerPIN, INPUT);

// モード指定

TCCR1A = 0b00100001;

TCCR1B = 0b00010010;


// TOP値指定

OCR1A = (unsigned int)(1000000 / frq);

Serial.begin(9600);


digitalWrite(LEDPin, LOW);


}


void setpwm(int advalue){

  if(advalue <= 115)  duty = 0;

  else if(advalue >= 908) duty = 1;

  else duty = ((float)advalue-115)/8/100;

  Serial.print("Duty ");

  Serial.println(duty);

  OCR1B = (unsigned int)(1000000 / frq * duty);

  delay(100);

}


void loop() {

  int i;

  for(i=0;i<=4;i++)

  {

    dimmerValue = dimmerValue + analogRead(dimmerPIN);

    delay(20);

  }


  dimmerValue = dimmerValue/5;


  if( dimmerValue == oldValue){

    dimmerValue = 0;

  }

  else {

    oldValue = dimmerValue;

    setpwm(dimmerValue);

    Serial.println("Change dimmerValue");

    Serial.println(dimmerValue);

    dimmerValue = 0;

  }

  

delay(100);


}

2024年1月23日火曜日

RPI Pico Ide

 https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

2024年1月20日土曜日

今更ながら Visual C# 第三回目 チェックボックス メッセージボックス メッセージボックスにyes/No

 ① チェックボックス メッセージボックスを使ってみる。

 private void button1_Click(object sender, EventArgs e)

        {

            if (checkBox1.Checked) MessageBox.Show("チェックボックスがチェックされています。", "確認"); 

            // 条件が成立しない(チェックされていない)場合のメッセージ

            else MessageBox.Show(

                "チェックボックスがチェックされていません。", // メッセージ

                "確認");                                      // タイトル

        }


②メッセージボックスにYes,Noを入れてみる。

 private void button1_Click(object sender, EventArgs e)

        {

            // メッセージボックスの「はい」「いいえ」ボタンを変数buttonsに格納

            MessageBoxButtons buttons = MessageBoxButtons.YesNo;

            string caption = "どっちか選ぼう!";

            string message1 = "リンゴは好きですか?";


            DialogResult result1;


            if (checkBox1.Checked)

            { result1 = MessageBox.Show(message1,  // メッセージ

                                              caption,   // タイトル

                                              buttons    // ボタンを指定

                                             );

                if (result1 == DialogResult.Yes)

                {

                    label1.Text = "美味しいよね!";

                }


                else { label1.Text = "好きになってよ。。。"; }

            }

            // 条件が成立しない(チェックされていない)場合のメッセージ

            else MessageBox.Show(

                "チェックボックスがチェックされていません。", // メッセージ

                "確認");                                      // タイトル


         

                

                    }

今更ながら Visual C# 第二回目 TextBoxから文字を取り、Labelに字を入れる。

 今日はどんどん機能を覚えていきます。

TextBoxから文字を取り、Labelに字を入れます。

ボタン1を押すと掛け算がLabelに出るプログラム

private void button1_Click(object sender, EventArgs e)

        {

            int a, b, c;

            a = Convert.ToInt32(textBox1.Text);

            b = Convert.ToInt32(textBox2.Text); 

            c = a*b;

            label4.Text = Convert.ToString(c);


        }

2024年1月19日金曜日

今更ながら Visual C# 第一回目

 題名の通り。。。

始めた。

理由はいつもの通り、一緒に仕事をしているメンバーに簡単なWindowsのアプリを作るように頼んだが、断られた。。。

できない理由を30分聞かされ。。。

だったら、自分で書く事にした。

早速本を購入、仕事の帰りに横浜の紀伊国屋書店で本を探したが、あまり無く。。。

まーしょうがないから、これを買った。

3800円位、、、勢いとは言えムダ金を使ってしまった。








今日覚えた事。

プロジェクトは Windowsフォームアプリケーション .Net Frameworkで作ればよい。

いっぱい、在りすぎてわからんよ。。。



2023年5月17日水曜日

Pythonスクレイピング&クローリングデータ収集マスタリングハンドブック を読んでみた。

 題名の通りに特化した本。

ぜひこの本を読んで、色々なサイトをスクレイピングしてみて下さい。

あまりに特化しすぎて、私は買わない本だな~

超速Python仕事術大全 を読んでみた。

 

小さなTipsの集まり。

うまく抜き取ればプログラム、できる。