Etape 11 : Pimp votre robot, Télécharger le code et de libérer le Clusterbot !
J’ai joint une LED à broche 7 sur l’Arduino. Je n’ai pas utilisé une résistance!!! Mais vous devriez.
J’ai joint un buzzer Piezo jusqu'à la broche 9 sur l’Arduino. Je n’ai pas utilisé une résistance. Mais vous devriez.
Vous devrez télécharger la bibliothèque HC-SR04 et enregistrez-le dans votre dossier de bibliothèque Arduino. L’obtenir ici.
Le code :
#include « Ultrasonic.h »
Ultrason ultrasonique (10, 11) ;
#define PW101 3
#define AIN1 0
#define AIN2 1
#define PWMB 5
#define BIN1 2
#define BIN2 4
#define STBY 6
#define LED 7
#define haut-parleur 9
#define FREQ 1000
/ * Robot devrait continuer tout droit jusqu'à ce qu’un objet se trouve au seuil de distance * /
/ * Désolé pour le code superflu en bas - j’ai besoin d’avoir accès à ces fonctions * /
/ * dans un fichier d’en-tête * /
/ * Le robot devrait aller de l’avant et avoir un voyant vert continu jusqu'à ce que quelque chose soit 7 pouces devant le capteur.
Ensuite le robot doit arrêter et tourner à gauche jusqu'à ce qu’il n’y a pas un objet au sein de 7 pouces plus * /
void setup() {}
pinMode(PWMA,OUTPUT) ;
pinMode(AIN1,OUTPUT) ;
pinMode(AIN2,OUTPUT) ;
pinMode(PWMB,OUTPUT) ;
pinMode(BIN1,OUTPUT) ;
pinMode(BIN2,OUTPUT) ;
pinMode(STBY,OUTPUT) ;
pinMode(LED,OUTPUT) ;
}
void loop() {}
startUp() ;
while (ultrason. Ranging(Inc) < 9) {}
rotateLeft() ;
digitalWrite(LED,HIGH) ;
Tone(Speaker,FREQ) ;
Delay(20) ;
digitalWrite(LED,LOW) ;
noTone(SPEAKER) ;
Delay(20) ;
}
goForward() ;
digitalWrite(LED,HIGH) ;
}
goForward Sub ()
{
digitalWrite (AIN1, élevé) ;
digitalWrite (AIN2, faible) ;
analogWrite(PWMA,233) ;
digitalWrite (BIN1, élevé) ;
digitalWrite (BIN2, faible) ;
analogWrite(PWMB,255) ;
}
Sub goBackward ()
{
digitalWrite (AIN1, basse) ;
digitalWrite (AIN2, élevé) ;
analogWrite(PWMA,233) ;
digitalWrite (BIN1, faible) ;
digitalWrite (BIN2, élevé) ;
analogWrite(PWMB,255) ;
}
Sub rotateRight ()
{
digitalWrite (AIN1, élevé) ;
digitalWrite (AIN2, faible) ;
analogWrite(PWMA,255) ;
digitalWrite (BIN1, faible) ;
digitalWrite (BIN2, élevé) ;
analogWrite(PWMB,255) ;
}
Sub rotateLeft ()
{
digitalWrite (AIN1, basse) ;
digitalWrite (AIN2, élevé) ;
analogWrite(PWMA,255) ;
digitalWrite (BIN1, élevé) ;
digitalWrite (BIN2, faible) ;
analogWrite(PWMB,255) ;
}
Sub veerLeft ()
{
digitalWrite (AIN1, élevé) ;
digitalWrite (AIN2, faible) ;
analogWrite(PWMA,190) ;
digitalWrite (BIN1, élevé) ;
digitalWrite (BIN2, faible) ;
analogWrite(PWMB,255) ;
}
Sub veerRight ()
{
digitalWrite (AIN1, élevé) ;
digitalWrite (AIN2, faible) ;
analogWrite(PWMA,255) ;
digitalWrite (BIN1, élevé) ;
digitalWrite (BIN2, faible) ;
analogWrite(PWMB,190) ;
}
Sub applyBrakes ()
{
digitalWrite (AIN1, élevé) ;
digitalWrite (AIN2, élevé) ;
analogWrite(PWMA,255) ;
digitalWrite (BIN1, élevé) ;
digitalWrite (BIN2, élevé) ;
analogWrite(PWMB,255) ;
}
Sub démarrage ()
{
digitalWrite(STBY,HIGH) ;
}
Sub turnAround()
{
rotateLeft() ;
Delay(1370) ;
}
Arrêt Sub ()
{
digitalWrite(STBY,LOW) ;
}