Alkoholtester mit Hifle Arduino und Figaro TGS822

Gast #4761020
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() {}
Gast
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?
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
Gast
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
Gast
@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);
 }
Gast
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 :-)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.