https://tamanegi.digick.jp/computer-embedded/mcuboa/lolin-d1-mini/ に
LOLIN(WEMOS) D1 mini lite の説明があるが、PWMがうまくいかん!
https://burariweb.info/electronic-work/wemos-d1-mini-esp8266-development-board.html#WeMos_D1_mini が手持ちのようだ GPIO16はPWMできんとあった
( pin0とピンをいろいろ組み合わせるが他につないだらできるが順逆とならん。。。。
gpio0以外の組み合わせでは音がするのみ。。むしろESP01でPWMできるのが不思議。。。)
単純なオンオフもgpio0以外をつかわんと順逆とならん 手持ちのWemosが
はずれだった可能性が高い
https://misoji-engineer.com/archives/motordriver-dc.html にくわしいが
MICROPYTHONで解説されている
スタンバイに3.3vを入力するのがポイント 5vでは暴走する!
以下はesp01での話!Wemosではない!
https://tamanegi-digick.com/it/dcmtdrv/#toc30 がARDUINO-IDE
以下のようにanalogWriteは徐々にあげていかんと暴走する?
そうでもなかった つねにLOWにするサイドはanalogWriteでもdigitalWriteでいい
結局 https://deviceplus.jp/arduino/arduino_f05/ がわかりやすい
ちなみにgpioは0,2と1,3の組み合わせがいい
#define VIN1 0
#define VIN2 2
void setup()
{
pinMode(VIN1, OUTPUT);
pinMode(VIN2, OUTPUT);
}
void loop()
{
int i = 0;
//正回転
digitalWrite(VIN2, LOW);
//回転速度を上げる
for(i = 0; i < 256; i ++)
{
analogWrite(VIN1, i);
delay(10);
}
//回転速度を下げる
for(i = 0; i < 256; i ++)
{
analogWrite(VIN1, 0xff - i);
delay(10);
}
//逆回転
digitalWrite(VIN1, LOW);
//回転速度を上げる
for(i = 0; i < 256; i ++)
{
analogWrite(VIN2, i);
delay(10);
}
//回転速度を下げる
for(i = 0; i < 256; i ++)
{
analogWrite(VIN2, 0xff - i);
delay(10);
}
}
--------別のやりかた-------------------------------------------------------------
#define MOTOR_AIN1 0
#define MOTOR_AIN2 2
void setup() {
pinMode(MOTOR_AIN1, OUTPUT);
pinMode(MOTOR_AIN2, OUTPUT);
}
void loop() {
digitalWrite(MOTOR_AIN1, LOW);
analogWrite(MOTOR_AIN2,0);
delay(1000);
digitalWrite(MOTOR_AIN1, LOW);
digitalWrite(MOTOR_AIN2, LOW);
delay(1000);
analogWrite(MOTOR_AIN1, 0);
digitalWrite(MOTOR_AIN2, LOW);
delay(1000);
digitalWrite(MOTOR_AIN1, HIGH);
digitalWrite(MOTOR_AIN2, HIGH);
delay(1000);
}
}
ーーーーーーー回転サーボーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
0~90 前 91停止 91~180 後
https://qiita.com/Google_Homer/items/b1508d94220e669c2c08
obnized M5StickC 回転Servoで2WD Car
https://kokensha.xyz/obniz/obniz-continuous-servo-test/
obnizで連続回転サーボを動かしてみる!
サーボごとにスペックが違うようで、電源は外部からとるのが無難のようだ
0 件のコメント:
コメントを投稿