* Pulse Width Modulation(パルス幅変調)制御 [#eb3dc03c]
* モータードライバ: TA8428K [#d0431e69]
- http://akizukidenshi.com/download/ta8428k(s).pdf
|*#|*Name |*Arg |*Func |
|*1|##IN1 ##|##i1 ##|制御用入力端子|
|*2|##IN2 ##|##i2 ##|^ |
|*3|##OUTA ##|##o1 ##|〜1.5A |
|*4|##GND ##|##gnd##|GND |
|*5|##OUTA~##|##o2 ##| |
|*6|##---- ##|##-- ##| |
|*7|##Vcc ##|##vcc##|VCC〜30V |
| | |lx: | |lx: |c
|*Mode|*IN1|*IN2|*OUTA|*OUTA~|
|*制動| H | H | L | L |
|*正転| H | L | H | L |
|*逆転| L | H | L | H |
|*停止| L | L | Z | Z |
* ハード [#j705136e]
### verilog
;pin ctrl.gnd = driver.gnd = 0V
;pin ctrl.vcc = 5V
;pin driver.vcc = 12V
;C[10 uF](driver.gnd, driver.vcc)
;C[ 0.1uF](driver.gnd, driver.vcc)
;Arduino ctrl
;TA8428K driver
;driver.i1 = ctrl.D3
;driver.i2 = ctrl.D11
;pin driver.o1;
;pin driver.o2;
###
* ソフト [#f78cb14d]
### C
void setup() {
Serial.begin(9600);
pinMode( 3, OUTPUT);
pinMode(11, OUTPUT);
}
int c1 = 3;
int c2 = 11;
int t = 100;
int d = 50;
int command = 0;
void loop() {
if (Serial.available() > 0) {
command = Serial.read();
}
digitalWrite(c1, LOW )
digitalWrite(c2, HIGH)
delay(d);
digitalWrite(c1, LOW)
digitalWrite(c2, LOW)
delay(t-d);
}
###