Intellekten Edison IoT: Automatisk lampa (relä, HC-SR04) (2 / 7 steg)
Steg 2: kodning
Anslut styrelsen till datorn och börja skriva koden.
Först måste du förklara och definiera de begagnade komponenter och bibliotekets och globala variabler
#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;
lång varaktighet, avstånd;
Sedan börja arbeta med ogiltiga inställningar.
void setup() {
Serial.BEGIN (115200);
pinMode (relayPin, produktionen);
LCD.BEGIN (16, 2);
lcd.setRGB (colorR, colorG, colorB);
pinMode (trigPin, produktionen);
pinMode (echoPin, ingång);
pinMode (LEDPin, OUTPUT);
}
Efter installationen kommer huvudprogrammet i till ogiltiga slingan.
av chancing if (avstånd <100) till något annat ultraljud sensorn kan kalibreras till rummet används. Det betyder att om avståndet är mindre än 100 cm aktivera ljuset.
void loop() {
digitalWrite (trigPin, låg);
delayMicroseconds(2);
digitalWrite (trigPin, hög);
delayMicroseconds(10);
digitalWrite (trigPin, låg);
längd = pulseIn (echoPin, hög);
avståndet = varaktighet/58,2;
LCD.Clear();
om (avstånd > = maximumRange || avstånd < = minimumRange) {
Serial.println ("out of range");
lcd.setCursor(0,0);
LCD.Print ("out of range");
digitalWrite (LEDPin, hög);
}
annat {
Serial.println(Distance);
LCD.Print(Distance);
lcd.setCursor(3,0);
LCD.Print("cm");
digitalWrite (LEDPin, låg);
}
IF(Distance < 100)
{
LCD.Clear();
digitalWrite (relayPin, hög);
lcd.setCursor(0,0);
LCD.Print ("Välkommen hem!");
Serial.println ("Välkommen hem!");
Delay(30000);
}
annat
{
digitalWrite (relayPin, låg);
}
Delay(200);
}
Du kan hämta hela koden från slutet av projektet.