ロボ研の藤田大悟です。

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);
}
}