1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
#include <Metro.h>
//Define the interval
Metro MyInterval = Metro(30);
//Motor 1
int pinAIN1 = 9; //Direction
int pinAIN2 = 8; //Direction
int pinPWMA = 3; //Speed
//Motor 2
int pinBIN1 = 11; //Direction
int pinBIN2 = 12; //Direction
int pinPWMB = 5; //Speed
//Standby
int pinSTDBY = 10;
//Current sensor
int pinCurrentSensor = 6;
int CurrentValue = 0;
void setup()
{
//Set the PIN Modes
pinMode(pinAIN1, OUTPUT);
pinMode(pinAIN2, OUTPUT);
pinMode(pinBIN1, OUTPUT);
pinMode(pinBIN2, OUTPUT);
pinMode(pinSTDBY, OUTPUT);
pinMode(pinPWMA, OUTPUT);
pinMode(pinPWMB, OUTPUT);
pinMode(pinCurrentSensor, INPUT);
}
void loop()
{
if(MyInterval.check() != 1) //Check if the metro has passed its interval
{
CurrentValue = analogRead(pinCurrentSensor);
if(CurrentValue < 4)
{
digitalWrite(pinAIN1, HIGH);
digitalWrite(pinAIN2, LOW);
digitalWrite(pinBIN1, HIGH);
digitalWrite(pinBIN2, LOW);
digitalWrite(pinSTDBY, HIGH);
analogWrite(pinPWMA,255);
analogWrite(pinPWMB,127);
}
else
digitalWrite(pinSTDBY, LOW);
}
} |
Partager