1. Bornes A et B du moteur 4
2. GND (masse)
3. Bornes A et B du moteur 3
4. Jumper : En place, alimentation moteurs par Arduino.
Enlevé, alimentation externe des moteurs
5. Bornes d'alimentation externe des moteurs
6. Deux connecteurs pour servos
7. Bornes A et B du moteur 1
8. GND (masse)
9. Bornes A et B du moteur 2
Spider-Bot A2 video
Téléchargez les librairies :
IRremote
AFMotor
/* Spider A2 (version 171217) */
#include "AFMotor.h"
#include "IRremote.h"
AF_DCMotor Mt_A(3, MOTOR12_64KHZ);
AF_DCMotor Mt_B(4, MOTOR12_64KHZ);
// Codes HEX selon télécommande utilisée !
#define FWRD 0xFFE01F
#define BKWD 0xFFC03F
#define LEFT 0xFF807F
#define RGHT 0xFFD827
#define STOP 0xFF40BF
#define BRKE 0xFF20DF
int irPin = A0; // IRcode
IRrecv reception_ir(irPin);
decode_results decode_ir;
unsigned int value;
void setup(){
Serial.begin(9600);
Serial.println("Projet- Spider-A2-171217-01");
reception_ir.enableIRIn(); // IRcode
}
void loop(){
if(reception_ir.decode(&decode_ir) ) // IRcode
{Serial.println(decode_ir.value,HEX);
switch(decode_ir.value){
case FWRD:
Serial.println("FWRD");
fwrd(2000,255,255);
break;
case BKWD:
Serial.println("BKWD");
bkwd(2000,255,255);
break;
case RGHT:
Serial.println("RGHT");
rght(2000,255,255);
break;
case LEFT:
Serial.println("LEFT");
left(2000,255,255);
break;
case STOP:
Serial.println("STOP");
stall(2000);
break;
} // switch
reception_ir.resume(); // IRcode
} // if IR
} // loop
////////////////// functions /////////////////
void fwrd(int del,int spd_A,int spd_B){
Mt_A.setSpeed(spd_A);
Mt_B.setSpeed(spd_B);
Mt_A.run(FORWARD);
Mt_B.run(FORWARD);
}
void bkwd(int del,int spd_A,int spd_B){
Mt_A.setSpeed(spd_A);
Mt_B.setSpeed(spd_B);
Mt_A.run(BACKWARD);
Mt_B.run(BACKWARD);
}
void rght(int del,int spd_A,int spd_B){
Mt_A.setSpeed(spd_A);
Mt_B.setSpeed(spd_B);
Mt_A.run(BACKWARD);
Mt_B.run(FORWARD);
}
void left(int del,int spd_A,int spd_B){
Mt_A.setSpeed(spd_A);
Mt_B.setSpeed(spd_B);
Mt_A.run(FORWARD);
Mt_B.run(BACKWARD);
}
void stall(int del){
Mt_A.setSpeed(0);
Mt_B.setSpeed(0);
Mt_A.run(BRAKE);
Mt_B.run(BRAKE);
delay(del);
Mt_A.run(RELEASE);
Mt_B.run(RELEASE);
}