久しぶりにPicoを始めようと。
以前作ったボードの回路が分からなくなり、記載。
暑いので、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);
}
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
① チェックボックス メッセージボックスを使ってみる。
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(
"チェックボックスがチェックされていません。", // メッセージ
"確認"); // タイトル
}
今日はどんどん機能を覚えていきます。
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);
}
題名の通り。。。
始めた。
理由はいつもの通り、一緒に仕事をしているメンバーに簡単なWindowsのアプリを作るように頼んだが、断られた。。。
できない理由を30分聞かされ。。。
だったら、自分で書く事にした。
早速本を購入、仕事の帰りに横浜の紀伊国屋書店で本を探したが、あまり無く。。。
まーしょうがないから、これを買った。
3800円位、、、勢いとは言えムダ金を使ってしまった。
今日覚えた事。
プロジェクトは Windowsフォームアプリケーション .Net Frameworkで作ればよい。
いっぱい、在りすぎてわからんよ。。。
題名の通りに特化した本。
ぜひこの本を読んで、色々なサイトをスクレイピングしてみて下さい。
あまりに特化しすぎて、私は買わない本だな~