Étape 6: Mettre tout ensemble
LE CODE FINAL :
Light croquis de robot cherche :
int gauche = 2 ; commande du moteur gauche attachée à la broche 2
int droite = 4 ; commande du moteur droit attaché à la borne 4
int vers l’avant = 7 ; commande de moteur avant attaché à broche 7
int vers l’arrière = 8; / / motricité arrière attaché à la broche 8
int ledleft = A5 ; détection de lumière gauche conduit attaché à broche analogique 5
int ledright = A4 ; détection de droite conduit attaché analogique broche 4
lf int = 0 ; stocke la valeur de gauche conduit
lr int = 0 ; stocke la valeur du droit conduit
int x = 0 ; utilisé pour stocker la valeur absolue des deux leds
int i = 1 ; utilisé uniquement pour garder le faire tout en boucle ouverte
void setup() //does qu’une seule fois lorsque l’Arduino est allumé
{
pinMode (à gauche, sortie) ; définition des types de broches pour chaque moteur et led
pinMode (sortie droite,) ;
pinMode (sortie vers l’avant) ;
pinMode (vers l’arrière, sortie) ;
pinMode (ledleft, entrée) ;
pinMode (ledright, entrée) ;
}
void go_forward() {/ / création de fonctions afin de réduire la quantité de frappe plus tard
digitalWrite (avant, haut) ;
digitalWrite (vers l’arrière, faible) ;
}
void go_backward() {}
digitalWrite (vers l’arrière, élevé) ;
digitalWrite (avant, bas) ;
}
void go_left() {}
digitalWrite (gauche, haut) ;
digitalWrite (à droite, bas) ;
}
void go_right () {}
digitalWrite (à droite, haut) ;
digitalWrite (gauche, en bas) ;
}
void go_stop() {}
digitalWrite (à droite, bas) ;
digitalWrite (gauche, en bas) ;
digitalWrite (avant, bas) ;
digitalWrite (vers l’arrière, faible) ;
}
void loop() {/ / va encore et encore jusqu'à ce que désactivée
LF = analogRead (ledleft) ; lf définit à la valeur de la gauche a conduit
LR = analogRead (ledright) ; ensembles de lr à la valeur du droit conduit
x = abs (lf - lr) ; définit x à la différence entre les deux leds Google si vous voulez plus d’informations sur comment ça marche
{}
Si (x < 10) {//change les dix jusqu’au montant que vos leds ont par lorsqu’ils étaient tous deux en direct / / lumière. C’est la sensibilité de votre robot et prendra quelques tâtonnements pour obtenir le droit
go_forward() ;
Delay(500) ;
go_stop() ;
rupture ; quitte au faire tout en boucle et remonte vers le haut
}
Si (lr > lf) {/ / tourne à gauche quand il n’y a plus de lumière sur le côté gauche de la voiture
go_right() ;
go_forward() ;
retard (500) ;
go_stop() ;
rupture ; remonte vers le haut de la boucle et réévalue les valeurs de leds
}
Si (lf > lr) {/ / tourne à droite si il n’y a plus de lumière sur la droite de la voiture
go_left() ;
go_forward() ;
Delay(500) ;
go_stop() ;
rupture ; va en arrière vers le haut de la boucle et réévalué les valeurs de leds
}
} tandis que (j’ai == 1) ; laisse le faire tout en boucle de commande ouvert
}
INTERROMPRE LA COPIE ICI
Choses finales
Premier élastique à la maquette et l’Arduino sur la voiture, ensuite Fixez la pile 9v pour la voiture et branchez-le sur l’Arduino utilisant le 9v au câble de l’Arduino. Aussi n’oubliez pas de mettre les piles dans la voiture et mettre en marche.
Fini votre voiture R.C devrait maintenant chercher la lumière. Si pas alors vérifiez toutes les connexions et assurez-vous que rien n’est court-circuiter. Si votre voiture va tout droite alors que votre sensibilité est à faible et vous devez diminuer le x < nombre __. Si votre voiture passe constamment des directions votre sensibilité est trop élevée et le x < __ nombre doit être plus grande. Et assurez-vous que les piles ne sont pas morts:)
Si vous avez des problèmes de leur commentaire et s’il vous plaît taux. Merci pour la lecture (et construction?)