Étape 5: logiciels
De bijbehorende bibliotheken zijn gedownload fr geïnstalleerd en de libraryfolder voor de code gerechten de sonar fr de servo moteur makkelijk zijn te programmeren.
De steeds code est de rencontré arduino gecompileerd geüpload de fr en de arduino. Rencontre de code kan de sonar zien dat als er iets in de buurt van de sonar komt dat de laser aan gaat fr de heen moteur fr weer draait, Kon de laser heen fr weer schijnt. Dit est getest op mijn kat en het werkstuk voor de test was ! J
Code :
#include / / standaard programma/bibliotheekje waarmee je makkelijk met de sonar kan omgaan.
#include / / standaard programma/bibliotheekje waarmee je makkelijk met de servo moteur kan omgaan.
int pos = 0 ; variabele om de waarde van de servo positie op te slaan, begint bij 0 graden.
int DelayA = 30 ; retarder le Kent dat de ordinateur même wacht.
int RELAY_A = 9 ; dit est pinnetje 9. Relais = het relais/schakelaartje.
int RELAY_B = 10 ; dit est pinnetje 10. Dit est het tweede schakelaartje (((__DIE WE GEBRUIKEN__ NIET NU)))
#define TRIGGER_PIN 8 / / Arduino pin 8 = déclencheur van de ultrasonische sonar.
#define ECHO_PIN 7 / / Arduino pin 7 = echo van ultrasonische sonar.
#define MAX_DISTANCE 75 / / afstand maximale De nous die willen meten met de sonar (en centimètres). Distance maximum sensor est évalué à 400-500cm.
NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE) ; NewPing standaard instellingen van de l’ergot (die een ping uit andere), de echo pin (die een ping binnen krijgt) fr de max afstand.
Servo myservo ; myservo est de naam nous die de belangrijkste moteur hebben.
vous pouvez créer un maximum de huit objets de servo
void setup() {/ / Mettez votre code de configuration ici, pour exécuter une fois :
Serial.Begin(115200) ; Ouvert moniteur série à 115200 bauds pour voir ping résultats. Bibliotheekje waarmee je het resultaat van de afstand kan uitprinten, naar uitstraling. een scherm.
pinMode (RELAY_A, sortie) ; attache le relais A sur la broche 9
pinMode (RELAY_B, sortie) ; attache le relais B sur la broche 10 (overbodig)
myservo.Attach(5) ; attache le servo sur la broche 5 à l’objet de servo
}
void loop() {}
Delay(50) ; Wacht 50 miliseconden tussen elke ping du sonar (huren 20 pings/sec). 29ms est de kleinst f waarde tussen een ping. Hij moet eventjes wachten om tijd te hebben om de ping te lezen par l’intermédiaire de echo.
unsigned int nous = sonar.ping() ; Envoyer des ping, ping temps en microsecondes (nous). Er wordt een ping verstuurd fr en de waarde « nous » komt de tijd terug dat de ping terug est terecht.
unsigned int cm = uS / US_ROUNDTRIP_CM ; Zet de microseconden om en centimètres.
Si (cm > 0) {/ / alleen een print sturen marché au-dessus de bus série als de gemeten afstand binnen het afstandsbereik valt.
Serial.Print ("Afstand est") ; om te testen fr om op het scherm te tonen wat de afstand est.
Serial.Print(cm) ; imprimer le résultat (0 = buiten de ingestelde afstandsbereik)
Serial.println ("cm") ;
pour (pos = 0; pos < 180; pos += 2) {/ / gaat van 0 graden naar 180 graden en stapjes van graden 2
myservo.Write(POS) ; Vertel de servo om naar de positie te gaan en variabele de « pos »
Delay(DelayA) ; Wacht x ms op de servo gerechten hij de positie kan behalen
digitalWrite(RELAY_A,LOW) ; Laser aanzetten
}
}
else {}
digitalWrite(RELAY_A,HIGH) ; Laser uitzetten
}
}}