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
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
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
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??
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.
Wozu ein µC? Mit einem Vierfach-Komparator (so im Stile von LM139) und etwas Hühnerfutter wäre die Aufgabe auch gelöst.
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.
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.