www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie kann man einen ATtiny2313 mit einem Fotosensor starten


Autor: Stefan Eising (eisingstone)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nachdem mir die Suchfunktion hier im Forum leider auch nicht 
weitergeholfen hat, frage ich doch einfach mal.
Wie kann ich einen ATtiny2313 mit einem Fotosensor / Diode oder 
Transistor das Programm des ATTiny starten???
Der ATtiny soll 16 LED Gruppen über die Porta, Portb und Portd die als 
Output konfiguriert sind, ansteuern.
Ich könnte auch zur Not mit einer externen Lösung leben. Wichtig ist nur 
das die Schaltung möglichst wenig Strom verbraucht, da ich lediglich 4 
Mignonakkus, also 4,8 Volt mit 3500 mAh, zur Verfügung habe.
Ich hoffe einer von euch hat da eine gute Idee, wie man das Ganze 
umsetzen kann.

Gruß
Eisingstone

Autor: Stefan M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
fototransistor an resetpin, bzw. irgendwie verschaltet?

Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leg den Prozessor schlafen und laß in durch die Helligkeit aufwecken, 
oder schau halt ab und zu nach....

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat der Tiny2313 einen Analog Comparator?
 -> Sleep -> ACINT = Hallo Wach!

Oder PowerDown Mode und der Fototransistor erzeugt einen (LEVEL) 
Interrupt?

Autor: Jadeclaw Dinosaur (jadeclaw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er hat einen Komparator, der auf den Interrupt geht.

Gruss
Jadeclaw.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz eindache Lösung: Endlosschleife vor das eigenliche Programm legen, 
aus der nur gesprungen werden kann, wenn der Fototransistor einen 
bestimmten Pin auf High oder Low legt. Nach Abarbeiten des Programms 
bedarfsweise wieder in jene Endlosschleife springen. Die Sleep-Variante 
ist freilich eleganter, weil beim Nixtun kaum Strom gebraucht wird.

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du schon getestet ob der 2313 bis runter auf 4V 
(Entladeschlusspannung der Akkus) funktioniert? Ich würde einen Tiny26L 
bevorzugen, geht auch noch mit 3V. Den Fototransistor würde ich an einen 
ext. Interruptpin hängen, den Analog-Comparator abschalten (braucht 
Strom) und den µC in den Power-Down-Mode versetzen. Dürfte am 
Stromsparendsten sein. Im Reset-Mode (Reset-Pin auf low) braucht er auch 
einiges an Strom.

Autor: Stefan Eising (eisingstone)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

erstmal danke für die schnellen Antworten, also ich finde die 
Sleep-Variante irgendwie interessant. Ich frage mich gerade nur wie ich 
das umsetze??
Wie setze ich den ATtiny in den Sleep Modus und wie soll er dann 
erwachen??? Ich bin noch nicht so firm in der ganzen Sache!!

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie du ihn in den (und in welchen) Sleepmode versetzen kannst, Assembler 
oder C, steht im Datenblatt des Jeweiligen µC. Der ext. INT 'weckt' den 
µC aus dem Sleepmode wieder auf, entweder bei steigender oder fallender 
Flanke am INT-Pin, bei steigender UND fallender Flanke oder high (oder 
low)-Pegel. Steht ebenfalls im Datenblatt wie's einzustellen ist. Keine 
große Sache, probier einfach mal 'n bischen 'rum!

Autor: fieser Rahul (auch Oskar genannt) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da war doch was mit Wecken beim µC:
Man kann ihn über einen externen Interrupt nur per Flanke wecken lassen, 
wenn der Oszillator noch läuft. Im Sleepmode geht der AFAIK nicht mehr.
Wecken kann man ihn dann nur noch durch einen pegelgesteuerten 
Interrupt.
Dann müsste man ein RC-Glied an den Fotosensor basteln, das für einen 
genügend langen Impuls sorgt.

(Kann aber auch sein, dass ich da irgendwie mal wieder voll daneben 
liege...)

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@fieser Rahul

> Da war doch was mit Wecken beim µC:
> Wecken kann man ihn dann nur noch durch einen pegelgesteuerten
> Interrupt.
> Dann müsste man ein RC-Glied an den Fotosensor basteln, das für einen
> genügend langen Impuls sorgt.

Jepp, das sollte aber kein Problem sein. Einfach ein C (sagen wir 100nF) 
und einen grossen Pull-Up (sagen wir 100k), dann passt das schon. Ein 
Problem könnte das unsaubere Schalten eines einfachen Phototransistors 
sein. Also besser einen 74HC14 davor. Dann isses wasserdicht.

> (Kann aber auch sein, dass ich da irgendwie mal wieder voll daneben
> liege...)

Aussnahmsweise mal nicht ;-)

MFG
Falk

Autor: fieser Rahul (auch Oskar genannt) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Aussnahmsweise mal nicht ;-)

Wir wollen hier mal nicht persönlich werden! ;-)

Autor: Stefan Eising (eisingstone)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ihr seid echt klasse.... :-)

Das hört sich an als ob ich ein ziemlich lange Bastelstunde einlegen 
muss, mal sehen was dabei so rauskommt. Ich halte Euch diesbezüglich auf 
dem Laufenden.

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Einfach ein C (sagen wir 100nF)und einen grossen Pull-Up (sagen wir 100k), dann 
passt das schon. Ein Problem könnte das unsaubere Schalten eines einfachen 
Phototransistors sein. Also besser einen 74HC14 davor. Dann isses wasserdicht.

Wozu? Lass' ihn doch pegelgesteuert aufwachen, das geht schon! Den INT 
kann man ja bis zum nächsten Schlafenlegen sperren, um versehentlich 
ausgelöste INTs zu vermeiden.

Autor: Jadeclaw Dinosaur (jadeclaw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nebenbei bemerkt:
Den HC14 kann man sich sparen, AVRs haben generell 
Schmitt-Trigger-Eingänge. Externe SRs sind unnötig.

Gruss
Jadeclaw.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Sonic

>>Einfach ein C (sagen wir 100nF)und einen grossen Pull-Up (sagen wir >>100k), 
dann passt das schon. Ein Problem könnte das unsaubere Schalten >>eines einfachen 
Phototransistors sein. Also besser einen 74HC14 davor. >>Dann isses wasserdicht.

>Wozu? Lass' ihn doch pegelgesteuert aufwachen, das geht schon! Den INT

Ja eben, und um einen LOW Pegel ausreichender Dauer zu garantieren 
braucht es den C. Denn theoretisch könnte der Phototransistor nur einen 
kurzen Puls auf LOW gehen und dann ist das Aufwachen unsicher. Jaja, 
Phototransitoren sind nicht sonderlich schnell, aber schnell genug um 
unter ungünstigen Umständen komische Effekte zu erzeugen.

>kann man ja bis zum nächsten Schlafenlegen sperren, um versehentlich
>ausgelöste INTs zu vermeiden.

Das ist nicht das Problem.

@Jadeclaw Dinosaur

> Nebenbei bemerkt:
> Den HC14 kann man sich sparen, AVRs haben generell
> Schmitt-Trigger-Eingänge. Externe SRs sind unnötig.

Stimmt, hab ich vergessen.

MfG
Falk

Autor: Matti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Pin-Change Interrupt geht für das Problem genauso, wie ein normaler
Level-Interrupt, nur sollte man einen Punkt beachten (über den ich vor 
ein paar Wochen bei einem Tiny26 gestolpert war):

Man kann die AVRs sehr gut schlafen legen (sleep im power-down mode) und 
sie auf ein Ereignis (Pin-Change etc.) warten lassen. Hat man alle 
nicht-benötigten Komponenten (Analog-Komparator, ADC, BOD und Watchdog) 
abgeschaltet, dann brauchen sie nur 0.5-1uA. Wenn alle Eingangspins 
"fest" liegen!! Fängt ein Eingangspin an, die Spannung zu verändern 
(laden/entladen eines Kondensators, Dein Fototransistor etc.), dann wird 
die Eingangsstufe dieses Pins aktiv und verbraucht mal eben 100uA!

Im Manual steht:

"If the input buffer is enabled
and the input signal is left floating or have an analog signal level 
close to VCC/2, the
input buffer will use excessive power."

Ich war darüber gestolpert, weil ich einen extrem stromsparenden 
"Wecktimer" mit 5MOhm und 2uF (Folie) gebaut hatte, weil mir die 10uA 
des Watchdog zu viel waren! Das Resultat waren die oben erwähnten 100uA!

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Matti

> Der Pin-Change Interrupt geht für das Problem genauso, wie ein normaler
> Level-Interrupt, nur sollte man einen Punkt beachten (über den ich vor

Glaub ich nicht so sehr, denn wenn der AVR wirklich schäft (nicht nur 
Idle oder Power down) ist der Takt angehalten -> nix mit Pin Change.

> Ich war darüber gestolpert, weil ich einen extrem stromsparenden
> "Wecktimer" mit 5MOhm und 2uF (Folie) gebaut hatte, weil mir die 10uA
> des Watchdog zu viel waren! Das Resultat waren die oben erwähnten 100uA!

Wozu brauchst du einen Watchdog? Hast du einen 32kHz Quarz benuzt?

MfG
Falk


Autor: Matti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Falk

"Glaub ich nicht so sehr, denn wenn der AVR wirklich schäft (nicht nur
Idle oder Power down) ist der Takt angehalten -> nix mit Pin Change."

Glauben heisst "nicht wissen" (beliebter Oberlehrer Spruch)! Glaub mir, 
der Pin-Change funktioniert prima zum Aufwecken. Ich hab's schon -zig 
Mal
probiert und es steht auch in allen Manuals!

"Wozu brauchst du einen Watchdog? Hast du einen 32kHz Quarz benuzt?"

Häh? Ich glaube, ich verstehe Deine Rückfrage genauso wenig, wie Du 
wahrscheinlich meine Anwendung. Hier nur kurz zur Erläuterung:
Ich habe eine Lipo-Laderegelung mit Solarzellen programmiert, bei der 
der AVR fest am Akku hängt und auch die Steuerung des Verbrauchers 
übernimmt (Forderung: minimaler Stromverbrauch!). Dafür sollte der AVR 
die ganze Zeit Schlafen (Verbrauch < 1uA) und nur ca. alle 1-10min. 
Aufwachen und die Akku- und die Solarspannung messen. Mein 
selbstgebauter "Watchdog" hat dann über 1MOhm+2uF alle ca. 10s einen 
Pin-Change-Interrupt ausgelöst und alle 6-60 Interrupts habe ich die 
Messung gemacht. Aus o.g. Gründen (100uA Stromverbrauch) habe ich jetzt 
auf den internen Watchdog gewechselt (Verbrauch jetzt: 9uA) und lasse 
mich halt alle 2.2s Wecken.
(man muß einen Watchdog nicht zwangsläufig auch als Watchdog 
benutzen...)

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt, PinChange geht immer, auch im tiefsten Schlaf, da dieser auf 
Pegel und nicht auf Flanken reagiert. Bei meinen Tiny2313s in 
IR-Fernbedienungen funktioniert das bestens.

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.