Stap 2: codering
De Raad sluit aan op de PC en beginnen met het schrijven van de code.
Eerst moet u declareren en de gebruikte componenten en van bibliotheek en globale variabelen definiëren
#define echoPin 7 #define trigPin 8 #define LEDPin 13 #include #include "rgb_lcd.h"const int relayPin = 8; rgb_lcd lcd;const int colorR = 255; const int colorG = 255; const int colorB = 255;int maximumRange = 400; int minimumRange = 0; long duration, distance;
Dan gaan werken met de void setup.
void setup() { Serial.begin (115200); pinMode(relayPin, OUTPUT); lcd.begin(16, 2); lcd.setRGB(colorR, colorG, colorB); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(LEDPin, OUTPUT); }
Na de installatie komt het hoofdprogramma in void loop.
door chancing van de if (afstand <100) naar iets anders de ultrasone sensor kan worden gekalibreerd naar de kamer in gebruik. Dat betekent dat als de afstand minder dan 100 cm is zet het licht.
void loop() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = duration/58.2; lcd.clear(); if (distance >= maximumRange || distance <= minimumRange){ Serial.println("Out of range"); lcd.setCursor(0,0); lcd.print("Out of range"); digitalWrite(LEDPin, HIGH); } else { Serial.println(distance); lcd.print(distance); lcd.setCursor(3,0); lcd.print("Cm"); digitalWrite(LEDPin, LOW); } if(distance < 100) { lcd.clear(); digitalWrite(relayPin, HIGH); lcd.setCursor(0,0); lcd.print("WELCOME HOME!"); Serial.println("Welcome Home!"); delay(30000); } else { digitalWrite(relayPin, LOW); } delay(200); }
U kunt de hele code downloaden vanaf het einde van het project.