Mekaniska blomma (med Arduino) (5 / 7 steg)
Steg 5: Skriva koden för arduino och koppla sensorer
Bifoga din servo och motion sensor till din skärbräda och Anslut i till arduino (eller funduino) styrelsen. Detta är koden:
#include
#include servo myservo;
#define PING_PIN 12 # define PING_PIN2 11 / / Arduino PIN-kod knuten till både avtryckare och echo pins på ultrasonic sensor. #define MAX_DISTANCE 250 / / maximalt avstånd vi vill skicka ping (i centimeter). Maximal sensorn avståndet är dimensionerade för 400-500cm.
NewPing sonar (PING_PIN, PING_PIN2, MAX_DISTANCE); NewPing inställning av stift och maximalt avstånd.
int pos = 0; variabel att lagra servo position booleska checken = 0; unsigned int oss = 10; void setup() {myservo.attach(9); Serial.BEGIN(9600); tillmäter objektet servo servo på stift 9}
void loop() {int itemp = oss / US_ROUNDTRIP_CM; if(check == 1) {för (pos = 0; pos < = 180, pos + = 1) {/ / går från 0 grader till 180 grader / / i steg om 1 grad myservo.write(pos); / / tala servo gå till position i variabel "pos' delay(20); / / väntar 15 MS för servo att nå ställning}
Delay(2000); för (pos = 180, pos > = 0; pos-= 1) {/ / går från 180 grader till 0 grader myservo.write(pos); / / tala servo gå till position i variabel "pos' delay(20); / / väntar 15 MS för servo att nå ställning} kontrollera = 0; } delay(250); Oss = sonar.ping(); Serial.Print ("Ping:"); Serial.Print(US / US_ROUNDTRIP_CM); Konvertera ping tid avstånd och skriva ut resultatet (0 = utanför visst avstånd sortiment, ingen ping echo) Serial.println("cm"); Serial.Print(check); int jag = oss / US_ROUNDTRIP_CM; Serial.Print ("test rörelse"); Serial.println(i); Serial.Print(itemp); om (jag < 125 & & jag > 70 & & jag! = 0) {kontrollera = 1;}}