INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Programm hilfe
24.02.2014, 16:32
Beitrag #1
Programm hilfe
hallo und guten tag,
ich bin ganz neu in der arduino welt
und würde mich diesbezüglich weiterbilden wollen
weil ich das sehr interressant finde
was alles möglich währe wenn man es kann Tongue ...

und zwar möchte ich gern ein lcd display an mein arduino uno anschließen
das hatt auch soweit funktioniert und nen testprogamm aus der lib lief auch drauf
jetzt wollte ich selber was programmieren aber irgendwie bekomm ich es nicht so hin wie ich es will könnte mir denn evtl jemand auf die sprünge helfen

zur zeit ist es noch ein blink signal das ich auf den lcd display ausgeben will
kann ja eigentlich dann beliebig in nen schalter oder taster geändert werden ?
led durch blinckrhymus an auf lcd steht led an
led durch blinckrhymus aus auf lcd steht led aus

hier mal mein code:

#include <LiquidCrystal.h>


// Create a Display object
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);



int readButton;
int led=13;


void setup()
{
lcd.clear();
lcd.begin(16, 2);
pinMode(13, OUTPUT); // Set pinMode for Test LED
}

void loop()
{
digitalWrite (13,HIGH);
delay (1000);
digitalWrite (13,LOW);
delay (2000);

readButton = digitalRead(13); //
lcd.setCursor(0,0);

if (readButton==LOW)
{
lcd.print ("Led An");
}

else (readButton==HIGH);
{
lcd.print ("Led Aus");
}
readButton = 50;

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.02.2014, 20:46
Beitrag #2
RE: Programm hilfe
Hallo eddykett,

willkommen im Forum.

Deinem Code bzw. deinen Worten kann man nicht so recht entnehmen ob du nun die LED per Taster steuern möchtest, oder nach Zeit. Kannst du das bitte nochmal verdeutlichen?
Generell solltest du bei zyklischen Zeitsteuerungen auf delay() verzichten, da während der Laufzeit des delay() der Arduino nichts anderes macht bzw. zB. einen gedrückten Button garnicht erkennt. Anstatt zB.
Code:
digitalWrite (13,HIGH);
delay (1000);
digitalWrite (13,LOW);
solltest du folgendes benutzen:
Code:
unsigned long lastnow;
digitalWrite (13,HIGH);
lastnow=millis();
if (millis() - lastnow > 1000 )
  {
  digitalWrite (13,LOW);
  lastnow=millis();
}
Wenn du Buttons benutzt solltest du die mechanischen Unzulänglichkeiten der Buttons (hier gut beschrieben: http://popovic.info/html/arduino/arduino...#Debouncen ) durch den Einsatz der Bounce-Lib ausgleichen.
Eine gute Einführung dazu gibts hier: http://arduino.cc/en/Tutorial/Debounce#.Uwugg840_eA . Ist auch gleich ein gutes Beispiel wie man LEDs damit schaltet. Eine funktionierende Version der Bounce-Lib kannst du dir hier holen: http://www.arduinoforum.de/arduino-Threa...bounce-lib im obersten Post auf der Seite als Attachment.

Hope it helps!

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.02.2014, 22:21
Beitrag #3
RE: Programm hilfe
(24.02.2014 16:32)eddykett schrieb:  hallo und guten tag,
ich bin ganz neu in der arduino welt
und würde mich diesbezüglich weiterbilden wollen
weil ich das sehr interressant finde
was alles möglich währe wenn man es kann Tongue ...

und zwar möchte ich gern ein lcd display an mein arduino uno anschließen
das hatt auch soweit funktioniert und nen testprogamm aus der lib lief auch drauf
jetzt wollte ich selber was programmieren aber irgendwie bekomm ich es nicht so hin wie ich es will könnte mir denn evtl jemand auf die sprünge helfen

zur zeit ist es noch ein blink signal das ich auf den lcd display ausgeben will
kann ja eigentlich dann beliebig in nen schalter oder taster geändert werden ?
led durch blinckrhymus an auf lcd steht led an
led durch blinckrhymus aus auf lcd steht led aus

hier mal mein code:

#include <LiquidCrystal.h>


// Create a Display object
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);



int readButton;
int led=13;


void setup()
{
lcd.clear();
lcd.begin(16, 2);
pinMode(13, OUTPUT); // Set pinMode for Test LED
}

void loop()
{
digitalWrite (13,HIGH);
delay (1000);
digitalWrite (13,LOW);
delay (2000);

readButton = digitalRead(13); //
lcd.setCursor(0,0);

if (readButton==LOW)
{
lcd.print ("Led An");
}

else (readButton==HIGH);
{
lcd.print ("Led Aus");
}
readButton = 50;

}

also das lcd.begin kommt auf jeden Fall vor dem lcd.clear, erst den Treiber initialisieren und dann löschen...
Das du den Port wieder zurückliest wundert mich allerdings ein wenig...habe ich so noch nie benötigt. Aber was soll am Ende das readButton = 50; ?
Achja, und so wie du das geschrieben hast wird das Display immer "Led Aus" anzeigen logischerweise... da müßtest dir mal das zu Gemüte führen was Ricardo geschrieben hat....also die LED dann umschalten wenn die Zeit abgelaufen ist...mal so ganz grob.
lg
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.02.2014, 22:45
Beitrag #4
RE: Programm hilfe
hallo,
danke erst mal...
das (de)bouncen machen ich mit nen 100k widerstand gegen gnd ist doch das selbe oder ?
um ehrlich zu sein ist mir das gerade noch einfachen ein widerstan einzulöten
auls nen programm zu schreiben :-)

ich wollte einfach eine led über das programm blinken lasen ohne taster oder schalter
und da habe ich das in der lib unter blink gefunden
digitalWrite (13,HIGH);
delay (1000);
digitalWrite (13,LOW);
delay (2000);
ich verstehe darunter
das die led 1s an ist
und dann 2s aus ist

und nur den jeweiligen zustand auf dem lcd ausgeben
das wollte ich mit
readButton = digitalRead(13) machen (hätte besser readled sein sollen )

if ...s led leuchtet, auf lcd sollte jetz "led an" stehen
else ...led leuchtet nicht , auf lcd sollte jetzt "led aus" stehen

readbutton 50 dachte ich das der readbutton erst durch den befehl aller 50 ms gelesen wird
oder passiert das hier
readButton = digitalRead(13) automatisch ?
wenn ja aller wieviel ms wird er da gelesen ?


ich meinte das wenn das dann funktioniert kann ich es ja "weiter entwickeln"
das blinken raus und dafür ein taster oder schalter reinnehmen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.02.2014, 22:26
Beitrag #5
RE: Programm hilfe
Hi letzte Zeilen änder.
Was geht nicht das lCD ?
Code:
#include <LiquidCrystal.h>


// Create a Display object
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);



int readButton;
int led=13;


void setup()
{
lcd.clear();
lcd.begin(16, 2);
pinMode(13, OUTPUT); // Set pinMode for Test LED
}

void loop()
{
digitalWrite (13,HIGH);
delay (1000);
digitalWrite (13,LOW);
delay (2000);

readButton = digitalRead(13); //
lcd.setCursor(0,0);

if (readButton == HIGH)
{
lcd.print ("Led An");
}

else ;
{
lcd.print ("Led Aus");
}

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.02.2014, 23:33
Beitrag #6
RE: Programm hilfe
das lcd geht schon aber es steht nur 'led aus' drauf und ändert sich nicht in 'led an'
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.02.2014, 13:47
Beitrag #7
RE: Programm hilfe
Hallo Stich,

Zitat:das lcd geht schon aber es steht nur 'led aus' drauf und ändert sich nicht in 'led an'
Das ist mit dem Code den du geschrieben hast auch richtig so. Was aktuell passiert ist folgendes:
- LED auf HIGH
- 1 Sekunde nix machen
- LED auf LOW
- 2 Sekunden nix machen
- Taster abfragen
- wenn gedrückt, dann LCD-Anzeige "LED AN"
- wenn nicht gedrückt LCD-Anzeige "LED AUS"

Das ganze wiederholt sich dann per Loop() ständig.

Das Problem ist die fett geschriebene Zeile. Die Abfrage dauer nur wenige Microsekunden. Da diesen Zeitbereich mit ziemlicher Sicherheit nie treffen wirst, bleibt die LCD-Anzeige auf "LED aus".

Schreibe mal was du eigentlich erreichen möchtest / wie es eigentlich ablaufen soll.

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.02.2014, 18:37
Beitrag #8
RE: Programm hilfe
der loop ist

led high für 1 sek
lcd zeigt den status an (1 sek soll auf den display stehen led an )

led low für 2 sek
lcd zeigt den status an (2 sek soll auf den display stehen led aus )



weil ich das dann erweitern wollte einfach um nen paar kenntnisse zu erlernen....
schritt/aktion
1. das auto blinken raus dafür nen taster rein
2. taster "umprogrammieren" als schalter
(ein mal drücken ein, das nächste mal drücken wieder aus ,wieder drücken wieder ein...)
3. taster raus,led über poti dimmen
4. led über ldr ansteuern
5. led mit ldr ansteurn und istwert anzeigen (wenn möglich Lux)
6. led mit ldr ansteurn und sollwert über ext. taster verändern und istwert anzeigen(wenn möglich lux)

7. tests mit ethernet board (menue erstellen und rtc mit einbinden...)

8. lcdtest und ethernet test verbinden um mit den handy einen beleuchtungsanlage
steuern zu können

ich hoffe wenn das klappt kann mann viel ableiten für erweiterung mit thermo sensor ds 18B20
9. tests mit temperatur sensor
10. temp.sensor mit lcd vernüpfen
11. wie 10. mit anbindung ans ethernet schield
12. für mehrere raume das im haus erstellen
13. in leden raum ein lcd keypad shield installieren
und es hofentlich funktionabel und komfortabel nutzen :-)

meine verfügbaren bauteile sind :
-noch arduino uno werde aber demnächst nen mega bestellen
weil ich denke da wird der uno wohl nicht mit den speicher reichen
-lcd keypad shield
-ethernet shield
-leds
-taster
-schalter
-potis
-ldrs
-temp sensoren (ds 18B20)
-74hc595s

-div widerstände, aderleitung...kleinmaterial

ich weis ist nen riesiges projekt (zumin. für mich)
aber über div hilfen/beratung würde ich mich sehr freuen :-)
natürlich werden alle fortschritte/steps als tutorial festgehalten
um es weiter zu verarbeiten bzw zu verbessern und erweitern ...


frage: ist das überhaupt möglich was ich da vor hab oder soll ichs lieber gleich lassen ???
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Fehler in meinem Programm Franz54 7 146 01.12.2016 23:58
Letzter Beitrag: hotsystems
  Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen dastob 1 118 14.10.2016 21:40
Letzter Beitrag: hotsystems
Sad Ich brauche Hilfe Prosac 4 232 09.10.2016 18:39
Letzter Beitrag: Prosac
  at24c256 Hilfe Gandalf 6 248 29.08.2016 18:59
Letzter Beitrag: MKc
Smile Progammier Neuling Codeschloss bittet um Hilfe Donalonso 2 284 27.08.2016 18:23
Letzter Beitrag: Binatone
  Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite b3ta 11 449 22.08.2016 08:07
Letzter Beitrag: b3ta
  Hilfe: Mega2560 - ENC 28J60 - MYSQL Gandalf 1 180 28.07.2016 16:30
Letzter Beitrag: Gandalf
  Selbstfahrender Roboter Programm änderung hilfe ? arekklone 11 538 06.07.2016 14:59
Letzter Beitrag: Binatone
  Hilfe beim Arduino Shield reimundko 6 454 05.06.2016 11:28
Letzter Beitrag: rpt007
  Brauche etwas Hilfe bei der Umsetzung einer Idee raspido 3 527 23.04.2016 10:26
Letzter Beitrag: rkuehle

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste