Also erstmal ein paar worte zu mir und dem mini Bastelprojekt. Ich bin knappe 30 Jahre alt und hab beruflich mit elektronik nix am Hut, ausser dass ich natürlich einen PC Arbeitplatz hab und dieser Art Elektronik seit ich 12 zu meinem Leben gehört. Hab ein kleines Ambilight Bastelprojekt erfolgreich gemeistert und seid dem will ich irgendwie mehr. Versuche mich nun langsam zu steigern ;) Was ich machen will: Einen Türsensor an einem Kühlschrank nachrüsten. Dafür soll ein Attiny zum einsatz kommen diverse LEDs und ein Allegra A1120 Hallsensor (Dauermagnet an der Kühlschranktür), Dar Hallsensor ist am Kühlschrank befestigt und der Magnet liegt ihm gegenüber. Der A1120 ist ein unipolarer Sensor welcher bei anwesendem Magnetfeld GND durchschaltet. Angedacht war folgende funktionsweise. Bei geschlossener Kühlschranktür soll alles im Powerdown modus laufen, sobald die Tür sich öffnet und der Hallsensor keinen Magneten mehr detektiert soll der Attiny wieder aufwachen und LEDs blinken lassen und einen Buzzer piepen lassen. Schliesst sich die Tür wieder dann soll alles wieder in den Power down gehn. Dies funktioniert bis jetzt auch recht gut auf umgekehrem wege. (Alarm geben bei geschlossener Tür und Sleep modus beim offnen) Was ich schon verstanden hab, dass es nur 4 trigger zum aufwecken an INT0 port gibt (LOW, RISING, CHANGE, FALLING) Der A1120 schaltet laut datasheet mit magnetfeld auf LOW und ohne auf HIGH. Da ja bei geöffneter Kühlschranktür kein Magnet vorhanden ist, sollte dann HIGH anliegen, es gibt aber kein HIGH trigger, also müsste es der RISING trigger sein (LOW auf HIGH) dies funktioniert aber nicht. selbst wenn ich dies über einen normalen Schalter versuche antstatt den Hallsensor zu benutzen. versuche ich es mit dem LOW trigger (also mit Magnet vorhanen) dann funktionierts. Zusammengeschrieben ist alles im Arduino editor und programmiert wird alles mit einen umprogrammierten Teensy (Arduino kompatibles device) über Arduino. Ich hoffe man kann mir trotzdem weiterhelfen oder mich in die richtige Richtung verweisen. Den Code habe ich mit angehangen. Falls ich hier überhaupt an der richtigen Adresse bin (Mikrocontroller oder Arduino forum ich war mir da nicht so sicher) Vielen dank schonmal vorab Stefan
Wenn ich mich recht entsinne ist aufwecken aus dem powerdown nur mit einem Level (Low/High level) event zu bewerkstelligen
Tach Stefan, dein Problem ist folgendes und recht einfach zu beheben: INT0 ist ein synchroner interrupt heißt er braucht die I/O clock um edge zu triggern. Ohne clock also im power down kann er nur level triggern. Im speziellen aber nur low level. Ist bei dem Typ so. Die Lösung ist einen PCInt(pin change int) zu nehmen. Der kann asynchron auf edge triggern. Du musst nicht mal deine Schaltung umlöten, denn der tiny45 hat auf jedem Pin einen PCInt(auch auf INT0). Thor
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.