Hallo zusammen, kurz und knagig. Ich muss ein Alkoholtester mit einem Arduino und einem Figaro TGS822 bauen. Einen Taster zum Reseten und eine Anzeige mit LED's. Die LED's sollen jeweils mit 0,2 Promille steigen. 0,2 Promille die grüne LED, mit 0,4 Promille soll die erste gelbe LED leuchten, usw. Die Hardware müsste soweit stimmen, die ich auf einem Steckbrett aufgebaut habe. Allerdings bin ich ein Anfänger mit dem Arduino und im programmieren! Pinbelegungen: 7-13 LED-Anzeige 0 Taster für den Reset A5 für die Ansteuerung des TGS822 Ich habe hier noch mal ein Sketch angefangen, welcher einfach aufgebaut ist! Ich bitte hiermit um Hilfe zur Vervollständigung des Programms(soll sehr einfach aufgebaut sein, sodass ich es auch verstehen kann) int gruen=13; int gelb1=12; int gelb2=11; int rot1=10; int rot2=9; int rot3=8; int rot4=7; int reset=0; void setup() { pinMode(13, OUTPUT); pinMode(12, OUTPUT); pinMode(11, OUTPUT); pinMode(10, OUTPUT); pinMode(9, OUTPUT); pinMode(8, OUTPUT); pinMode(7, OUTPUT); pinMode(0, INPUT); } void loop() {}
Auf ein main() verzichtest du? Woher (aus welcher Variable oder mit welcher Funktion) beziehst du den Alkoholpegel? Als was liegt der vor? Unsigned integer, signed integer, welche Bitgröße? 8 Bit?
Hab zwar noch nie mit einem Alkoholtester gearbeitet aber wie testest du das eigentlich^^? Hängst du hackedicht zuhause oder auf der Arbeit rum:-D?
Hallo, Tasg schrieb: > Auf ein main() verzichtest du? er nutzt die Arduino-IDE, da ist das so schon ok, aber: > Woher (aus welcher Variable oder mit welcher Funktion) beziehst du den > Alkoholpegel? Als was liegt der vor? Unsigned integer, signed integer, > welche Bitgröße? 8 Bit? Es gibt kein Programm. Er setzt die Pins auf Eingang bzw. Asugang und hofft offenbar nun, daß sich jemand mit dem Datenblatt des TGS822 beschäftugt und ihm dann das Programm dazu schreibt. Das käme dann in loop() rein, die wird endlos durchlaufen. Ich vermute aber, das ist etwas zu wenig von seiner Seite. Wenn er wenigstens schonmal die LEDs leuchten lassen würde und/oder versuchen würde, den Sensor auszulesen vielleicht... Gruß aus Berlin Michael
Das könntest du dir mal anschauen, https://jenslabs.com/category/electronics/ketosis-detector/ Netterweise hat er auch seinen Arduino Quelltext auf github. Hauptaufwand ist wohl die Kalibrierung Led blinken und Code klauen musst du schon selber machen. Gut geklaut ist halb gelernt ;-)
Bla B. schrieb: > wie testest du > das eigentlich^^? Hängst du hackedicht zuhause oder auf der Arbeit > rum:-D? Vielleicht lädt er die örtliche Polizeiwache zu einem Kameradschaftsabend ein, und die bringen ihre geeichten Pusteröhrchen mit.
Nein so meint ich das nicht, will nicht den kompletten void loop rauskopieren. Ich wollte eigl. auch noch was lernen. @Michael U. (amiga): Ich habe schon einige Sachen mit den LED's gemacht, z.B. blinken oder faden lassen, allerdings bringt es mir bei dieser Aufgabenstellung nichts. Ich habe halt nur noch nie was mit Sensoren mit kombination eines Arduinos was gemacht. Bla Bla (tobita): Weder noch :P. Bei jedem Fehler beim Kompilieren gibt es einen Shot :D Ich habe das void setup() noch mit "Serial.Begin(9600);" ergänzt um zu sehen was der Sensor da macht, allerdings hat das auch nicht so ganz funktioniert. Natürlich habe ich dann auch im void loop()"analogRead(5); Serial.print(analogRead(1)); " ergänzt Ich bitte eigl. nur das mir jemand hilft der Ahnung hat mir mein Sketch fertig zu schreiben
Dan schrieb: > Ich bitte eigl. nur das mir jemand hilft der Ahnung hat mir mein Sketch > fertig zu schreiben Ach so, na wenns weiter nichts ist... Ernsthaft?!
@Tasg (Gast) Ich verstehe nicht was du von mir willst? Hier mal eine Ergänzung des void loop() void loop() { analogRead(5); Serial.println(analogRead(5)); if (analogRead(5)>=30) { digitalWrite(gruen, 1); digitalWrite(gelb1, 0); }else{ digitalWrite(gelb1, 0); digitalWrite(gelb2, 0); digitalWrite(rot1, 0); digitalWrite(rot2, 0); digitalWrite(rot3, 0); digitalWrite(rot4, 0); } { if(analogRead(5)>=80) { digitalWrite(gelb1, 1); digitalWrite(gruen, 0); }else{ digitalWrite(gruen, 0); digitalWrite(gelb2, 0); digitalWrite(rot1, 0); digitalWrite(rot2, 0); digitalWrite(rot3, 0); digitalWrite(rot4, 0); } if(analogRead(5)>130) { digitalWrite(gelb2, 1); }else{ digitalWrite(gruen, 0); digitalWrite(gelb1, 0); digitalWrite(rot1, 0); digitalWrite(rot2, 0); digitalWrite(rot3, 0); digitalWrite(rot4, 0); }
Ich habe damals so angefangen: Erst die Kommentare, dann den Code. Das kann so aussehen. //als erstes müssen wir den Sensor auslesen //Ist der Wert < xxx, muss die rote LED eingeschaltet werden //ist der Wert zwischen yyy und zzz die gelbe //ist der Wert größer zzz die grüne und so weiter. Ich arbeite immer so, wie früher die Bildchen im Internet geladen wurden. Erst grob, dann immer feiner. Also: Zuerst eine grobe Idee, was das für eine Funktion haben soll. Hast du ja, Sensor lesen und LED anzünden. Daraus entwickelt man sihc ein Konzept, was man machen muss, um das umzusetzen. Das wären die Kommentare oben, natürlich noch verfeinert. Hat man das, ist der Code schon fast fertig - der Rest ist ausformulieren in C-Syntax. Dann kommt natürlich noch testen :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.