2022年1月15日土曜日

DCmotorDriverPedia

------------dc-----------l293d---------------------------------------------

 L293Dは、モータ電源4.5v以上なので 多分電源電圧を単3x4を用意すれば

他のマイコンでもいけるだろう https://omoroya.com/arduino-lesson26/ も参照
---dc---------microbit only-----------------------------------------------------------
mic専用のmotor driver moduleで2個すんなりうごいた ただしmotorはFA130
http://www.micro-bit.info/archives/1141 
 keystudio ks0308 dc motor driver module モータとMICのGNDは別 
TB6612FNG がもとになっており、くわしくは以下のサイト
https://qiita.com/MedakanoGakko/items/e9624c3fa45e40b0425e 

ーーーdcーーーーTB67H450 single motor driver ーーーー
https://akizukidenshi.com/catalog/g/gK-14753/
VREFは3.3でも5でもいいみたいだ
このサイト情報は重要 電源電圧4.5V以上だった 単3x4が必要! L293Dも同一だろう

ーーーーーーdc---drv8835ーーーー

DRV8835でもGNDはマイコンと共通化、モータ電源が2〜7vとなっており、

espr2でも動いた! esprのピン配置は上下よく間違える! 注意注意

https://www.petitmonte.com/robot/howto_dc_motor_drv8835.html を参考にする

mode(11ピン)をGNDにおとしてゼロにしている、あとは9,10ピンをPWMし正逆を制御

プチモンテの方法(PWMっぽい)ではうごかんので以下のようにする

const int MORTOR1_PIN = 1;

const int MORTOR2_PIN = 0;

void setup() {

  // put your setup code here, to run once:

  pinMode(MORTOR1_PIN,OUTPUT);

  pinMode(MORTOR2_PIN,OUTPUT);

}

void loop() {

  // put your main code here, to run repeatedly:

  digitalWrite(MORTOR1_PIN,HIGH);

  digitalWrite(MORTOR2_PIN,LOW);

  delay(2000);

  digitalWrite(MORTOR1_PIN,HIGH);

  digitalWrite(MORTOR2_PIN,HIGH);

  delay(2000);

}



---dc-------------tc78h653ftg------------------結局壊した-----------------------------------------

以下をすると48以上ではおかしくなる逆起電力の問題か?正転・停止・逆転・停止で安定
モータだけならそれでいいが、ギアボックスの場合speeds100以上でないとトルクが出ん
ので音はすれど動かず! pwm方式の盲点だな。

  1. // 回転速度(35-255)
  2. // ※値が大きいほど高速,余りにも小さい値は回転しません。
  3. const uint8_t speeds = 48;

  4. void setup() {
  5. Serial.begin(9600);
  6. }
  7. void loop() {
  8. // 正転(回転)
  9. Serial.println("正転");
  10. analogWrite(10,speeds);
  11. analogWrite(11,0);
  12. delay(1000);
  13.  
  14. // 逆転(逆回転)
  15. Serial.println("逆転");
  16. analogWrite(10,0);
  17. analogWrite(11,speeds);
  18. delay(1000);
  19. // ブレーキ
  20. Serial.println("ブレーキ");
  21. analogWrite(10,speeds);
  22. analogWrite(11,speeds);
  23. delay(1000);
  24. }



https://coskxlabsite.stars.ne.jp/html/for_students/M5Stack/MotorDrivingDemo2/MotorDrivingDemo2.html を参考に TC78H653FTGをraspicoで動かした!
 上図にあるようにモータとマイコンのGNDは別,共通にしてはいけない!

【Raspberry Pi Pico】DCモーターをモータードライバで制御する | メタエレ実験室 (hellobreak.net)  デジタルオンオフとPWMの2種のコードがあった  tc78でもOKだった

import machine
import utime

IN1 = machine.Pin(1, machine.Pin.OUT)
IN2 = machine.Pin(2, machine.Pin.OUT)

while True:
    # 正転
    IN1.value(1)
    IN2.value(0)
    utime.sleep(2)
    
    # ブレーキ
    IN1.value(1)
    IN2.value(1)
    utime.sleep(2)
from machine import PWM, Pin
import utime

IN1 = PWM(Pin(1))
IN2 = PWM(Pin(2))
IN1.freq(100)
IN2.freq(100)

max_duty = 65025

while True:
    # 正転
    IN2.duty_u16(0)
    for i in range(50, 100):
        IN1.duty_u16(int(max_duty*i*0.01))
        utime.sleep(0.1)
        
    # ブレーキ
    IN1.duty_u16(max_duty)
    IN2.duty_u16(max_duty)
    utime.sleep(2)


0 件のコメント:

コメントを投稿