www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C-Code Feuchtemessung


Autor: Bastler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe soeben mal versucht mein erstes C Programm zusammenzuflicken.
Es soll hier ein Feuchtemesser mit einem Betauungssensor realisiert
werden. Als Controller soll der ATtiny 24V dienen. Als Taktfrequenz
hätte ich 1 MHz vorgesehen.
Dieses Programm bringt zwar keinen Fehler allerdings macht es auf meiner
Platine nicht wirklich das Richtige. Je nach relativer Feuchte (die über
den ADC0 eingelesen wird) soll ein rotes, gelbes oder grünes LED
leuchten.
Habe einiges im Datenblatt gesehen. Allerdings erscheinen mir sämtliche
Beispielprogramme viel zu kompliziert.
Die Unterfunktion blinken soll die LEDs zum blinken bringen. Ich weiss
nicht ob man das so lösen kann!
Bin für jede Anregung sehr dankbar! Wenn weitere Informationen nötig
sind gebe ich sie gerne.

Gruß
Thomas

Autor: jupp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hast du mal gemessen was "ein betauungssensor" ausspuckt?

Autor: Axel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem Blinken geht so nicht. Mach Dir im Timerinterrupt eine 
Veriable, welche dort immer zwischen 1 und 0 wechselt.
Mit dieser wird das Verknüpfungsergebniss und verknüpft.

Lass das Blinken komplett weg, was mach dann der Ananlogeingang?

Axel

Autor: Matthias D. (marvin42)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tip: Fehlersuche immer modular machen, also lass erst mal das blinken 
weg und trenne den Feuchtesensor vom Atmel.

Ich würde vorschlagen, dass du zunächst mal eine kontrollierte Spannung 
an deinen AD0 hängst und diese langsam variierst, je nach Spannung 
sollten dann deine LEDs aufleuchten.

Deine Routine blinken() wird, so wie du sie geschrieben hast, nie wieder 
verlassen := Endlosschleife. Zumal du immer nur einen Impuls auf PA1 
gibst - ohne deinen Schaltplan zu kennen, kann ich da nicht weiter 
helfen.

Wenn deine LEDs dauernd, also wirklich immer blinken sollen, dann würde 
ich eine Interruptroutine zu Hilfe nehmen, die mit 4 Hz läuft und aus 
einer globalen Variablen übernimmt, ob die rote/gelbe/grüne LED blinken 
soll - aber zunächst würde ich das weglassen.

Ich nehme mal an, du hast einfach 3 LEDs an den Ports PA1,PA2 und PA3 
hängen, oder ? Wenn du in der Hauptschleife eine Messung machst, dann 
schaltest du je nach Messwert die passende LED per Bitmuster ein, also 
0xFE, 0xFD oder 0xFB, dann einen Delay von250 ms und dann von vorne..

Übrigens: es ist nicht üblich eine Funktion wie blinken so aufzurifen 
wie du das tust: "void blinken (void)", sondern einfach nur "blinken()"

matthias

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wegen des Betauungssensors war ich mir nie so ganz sicher. Klar wäre mir 
ein Feuchtesensor lieber gewesen. Allerdings ist bei einem kapazitivem 
Sensor die AUswertung schwieriger. Dieser Betauungssensor SHS A2 von 
Hygrosens Instruments ist ja quasi ein resistiver Sensor. Mir wurde auch 
gesagt er funktioniert mit 0,8 V Gleichspannung auch. Also theoretisch 
müßte ich dann über einen Spannungsteiler eine Spannung für den ADC 
abgreifen können. Bist du nicht der Meinung dass des funktioniert??

Autor: Bastler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier liefere ich noch meinen Stromlaufplan nach. Der Sensor R7 ist ein 
PTC. Leider habe ich noch nicht das passende Bauteil in der Eagle 
Bibliothek gefunden. R7 ist praktisch der verwendete Betauungssensor SHS 
A2 von Hygrosens Instruments.
Benötige ich parallel zum Resettaster S3 eigentlich noch einen 
Kondensator? Habe da inzwischen von 10µ bis 47µ viel gesehen. Taster S2 
der ursprünglich zum Ein- bzw. Ausschalten gedacht war wird nicht 
verwendet. Ich möchte das über einen Schalter machen, da der Controller 
ja sonst immer arbeiten müßte und Strom von meiner Batterie zieht.
Wie sorge ich für eine Batterieüberwachung?? Spannungsteiler R8 und R9 
war ursprünglich dafür vorgesehen. LED 4 hätte dann bei einer bestimmten 
Spannung (z.B. 2,5 V) blinken sollen. Wie kann man sowas am besten 
machen?

Gruß
Th.

Autor: Ralf Schwarz (spacedog) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wozu ein µC? Mit einem Vierfach-Komparator (so im Stile von LM139) und 
etwas Hühnerfutter wäre die Aufgabe auch gelöst.

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es war eine Vorgabe dass ein µC verwendet wird. Evt. soll auch mal ein 
Lämpchen blinken und das kann man mit einem µC besser lösen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.