Geigermätare utlöste LED dekorationer (5 / 6 steg)
Steg 5: Koden
Denna kod gör bara ett rakt snitt mellan strängar, men jag skulle vilja lägga till en toning eller en horisontella senare versioner...
Ladda upp följande kod till din mikrokontroller:
CONST int geigerPin = 12; ansluten till puls av geigermätare, trädgården ansluten alltför int lampor = 1; räknare för stråkar int lights1 = 9; definiera pins lysdioderna är anslutna till int bright1 = 200. ställa in ljusstyrka, 0-255 void setup() { pinMode (geigerPin, ingång); Ange stift till in- och utgångar analogWrite (lights1, bright1); slå på sträng 1 } int ledde = låg; Jag skulle växla en LED så att du kan se saker arbetar Serial.println("Low"); medan (val == hög) { ljus = 0; nollställa räknaren } }
int lights2 = 10;
int lights3 = 11;
int bright2 = 200.
int bright3 = 200.
Serial.BEGIN(9600); Använda följetong för felsökning
pinMode (lights1, produktionen);
pinMode (lights2, produktionen);
pinMode (lights3, produktionen);
analogWrite (lights2, 0);
analogWrite (lights3, 0);
Serial.println("Setup");
void loop() {
int val = digitalRead(geigerPin);
medan (val == låg) {
göra vad någonsin händer när ingen signal
Val = digitalRead(geigerPin);
}
fick i början av en puls, så gör något lämpligt
digitalWrite 13, ledde.
LED =! ledde;
vänta på puls till slut, 100us är en lång tid för en Arduino
Val = digitalRead(geigerPin);
}
puls färdiga
Lights ++; ökar värdet för räknaren ska gå vidare till nästa strängen
om (ljus == 1) {
analogWrite (lights1, bright1); slå på sträng 1
analogWrite (lights2, 0);
analogWrite (lights3, 0);
Serial.println("Lights1");
}
om (ljus == 2) {
analogWrite (lights1, 0);
analogWrite (lights2, bright2); slå på sträng 2
analogWrite (lights3, 0);
Serial.println("lights2");
}
om (ljus == 3) {
analogWrite (lights1, 0);
analogWrite (lights2, 0);
analogWrite (lights3, bright3); slå på sträng 3
Serial.println("lights3");
Serial.println(Lights);
Koppla in, slå på, hitta en växt att dekorera :)