ロボ研の藤田大悟です。
Engineerコースでは、けっこう複雑な「DCモータードライバ」に挑戦しました。
マイコンを使ってDCモータを動かすには、そのあいだをとりもつ「モータドライバ」が必要です。
そこで、今回マイコンでよく使われるモータドライバを使い、実際に動かしてみました。
とりあえず、1つ動かしチャレンジタイムで2つ動かすのに挑戦。
正直かなり大変でした。根気よく回路を1つずつ確認して動くモーターがつくれたこと。
またロボット作りへの一歩を踏み出しました。
ーーーー
【モータドライバ2つ プログラミング】
#include <rxduino.h>
const int SENSOR1 = 14;
const int SENSOR2 = 15;
const int drive6 = 1;
const int drive5 = 2;
const int drive4 = 3;
const int drive9 = 4;
const int drive8 = 5;
const int drive7 = 6;
int sensVAL1 = 0;
int sensVAL2 = 0;
void setup(){
pinMode(drive9,OUTPUT);
pinMode(drive8,OUTPUT);
pinMode(drive7,OUTPUT);
pinMode(drive6,OUTPUT);
pinMode(drive5,OUTPUT);
pinMode(drive4,OUTPUT);
}
void loop(){
sensVAL1=analogRead(SENSOR1)/2;
if (sensVAL1>=255 && sensVAL1<=256)
{
digitalWrite(drive6, LOW);
digitalWrite(drive5, LOW);}
else if (sensVAL1>256){
digitalWrite(drive6, HIGH);
digitalWrite(drive5, LOW);
analogWrite(drive4, sensVAL1-256);
}
else{
digitalWrite(drive6, LOW);
digitalWrite(drive5, HIGH);
analogWrite(drive4, 255-sensVAL1);
}
sensVAL2=analogRead(SENSOR2)/2;
if (sensVAL2>=255 && sensVAL2<=256)
{
digitalWrite(drive9, LOW);
digitalWrite(drive8, LOW);}
else if (sensVAL2>256){
digitalWrite(drive9, HIGH);
digitalWrite(drive8, LOW);
analogWrite(drive7, sensVAL2-256);
}
else{
digitalWrite(drive9, LOW);
digitalWrite(drive8, HIGH);
analogWrite(drive7, 255-sensVAL2);
}
}
Leave A Comment