Einen Taster anschließen klingt jetzt eigentlich ziemlich trivial. Aber man kann schnell ein ...
Die Anzeige basiert auf einer 8x8 RGB LED Matrix, welche zu Testzwecken zuerst ueber ein standard ...
Zeigen Sie uns was man mit Elektronik und Microcontroller alles basteln und bauen kann. Lassen Sie ...
Arduino Boards sind super und sie eignen sich perfekt um schnell Prototypen zu bauen. Hier habe ich ...
Multifunktionaluhr - Berufsreifeprüfungsprojekt 2009 Mein Partner und ich haben uns eine ...
Mitglied seit: 23.04.2009
Anleitungen: 18
Kommentare: 62
Sie sind jetzt Fan von Lichtbaendiger
Balkon & Terrassen Wettbewerb
Nimm jetzt an unserem Balkon Wettbewerb teil: Egal welche Anleitung, oder Idee du rund um den Balkon oder Terrasse hast, wir wollen sie sehen! ... mehr erfahren
| Teilahme bis: 23.07.2012 | Aktuelle Teilnehmerzahl: 2 |
|
Perfektes Raumklima - Luft-Entfeuchter Special! Brauchbare Tipps, leichte Anleitungen sowie viele Anregungen finden Sie im Luft-Entfeuchter Special Weitere Infos... |
Anleitung an einen Freund senden
- Senden an *
- Name *
- Von *
- Betreff
- * Pflichtfelder
LEDs als Lichtsensor am Arduino
Schritt 3: Messung der Ladung
Die Messung der Ladung geht über einen Trick.
An dem Eingang wird die Zeit gemessen bis der Eingang auf logisch LOW geht. Anhand der Zeit kann man dann ablesen wie hell die LED beleuchtet wurde.
Mit der Zeit muß man ein wenig experimentieren, die ist je nach verwenteter LED unterschiedlich.
Hier ein Beispielprogramm (Funktion siehe Video):
Die beiden LEDs werden hier angeschlossen:
static int LED1_Neg=6;
static int LED1_Pos=7;
static int LED2_Neg=2;
static int LED2_Pos=3;
void setup()
{
Serial.begin(9600); // um beobachten zu können wie sich die LED verhält kann später gelöscht werden
pinMode(LED2_Neg,OUTPUT);
pinMode(LED2_Pos,OUTPUT);
}
void loop()
{
unsigned long zeit;
Hier wird die LED verkehrt herum geschaltet und aufgeladen:
pinMode(LED1_Neg,OUTPUT);
pinMode(LED1_Pos,OUTPUT);
digitalWrite(LED1_Neg,HIGH);
digitalWrite(LED1_Pos,LOW);
jetzt wird die N Seite der LED zum Eingang:
pinMode(LED1_Neg,INPUT);
digitalWrite(LED1_Neg,LOW);
und die Zeit messen bis LOW:
zeit=millis();
while(digitalRead(LED1_Neg)==HIGH);
zeit=millis()-zeit;
zur Kontrolle zum Rechner schicken:
Serial.println(zeit);
10 Millisekunden ist ein brauchbarer Grenzwert:
if(zeit<10)
{
digitalWrite(LED2_Pos,HIGH); // Die zweite LED an
digitalWrite(LED2_Neg,LOW);
}
else
{
digitalWrite(LED2_Pos,LOW); // oder aus
digitalWrite(LED2_Neg,LOW);
}
}
Melden Sie sich kostenlos an, um diese Werbung dauerhaft auszublenden.
Kosten: gering
hoch
Schwierigkeit: gering
hoch

| Bei neuen Kommentaren benachrichtigen |

