Hallo zusammen. Ich habe ein Problem mit einem Input. Und zwar bekomme ich 3 Signale von 3 verschiedenen IR-Phototransistororen, welcher durch das Umgebungslicht nicht ganz schliesst. Ich habe immer rund 1.6V als Geschlossen und 4,5V als Leitend. Diese Spannung teile ich mittels eines Spannungsteilers auf ~2.1V und ~0,4V, jedoch meint der Controller dass die 2.1V schon als Low anzuschauen sind. Messtechnisch konnte ich keine Schwankung der Spannung feststellen. Dem Port habe ich mittels DDRA = 0x00; inititalisiert und mittels PORTA = 0x00; die Pull-Up ausgeschaltet, da ich gegen Low auswerten will. Auswerten tu ich den Status damit: if (! (PINA & (1 << PA5))) {} Nur werden mir diese Pins als LOW erkannt, obwohl da noch 2,1V anliegen. Gibt es einen anderen Weg als hier einen Transitortreiber vorzuschalten? Gruss
Er hält sich nur an sein Datenblatt. High ist definiert als größer 0,6 mal VCC, bei VCC=5V also 3V. Low ist definiert als kleiner 0,2 mal VCC, bei VCC=5V also 1V. Was dazwischen ist, ist nicht definiert! Es kann high oder low rauskommen. Die sauberste Lösung wäre es, nen externen Schmittrigger vorzuschalten. Und wenn da noch ADC-Kanäle frei sind, könnte man die Spannung auch analog einlesen und dann anhand eines Schwellenwertes in high/low einteilen
Also so wie ich das Tutorial verstanden habe kann ich maximal 1 Kanal auswerten und nicht 3 miteinander... Oder habe ich das falsch verstanden?
Die Frage ist, wie schnell man die Werte vom ADC braucht...
@ Elsurion (Gast) >Ich habe ein Problem mit einem Input. Und zwar bekomme ich 3 Signale von >3 verschiedenen IR-Phototransistororen, welcher durch das Umgebungslicht >nicht ganz schliesst. Ich habe immer rund 1.6V als Geschlossen und 4,5V >als Leitend. Dann brauchst du einen grösseren Arbeitswiderstand, siehe [[Lichtsensor / Helligkeitssensor]]. >Diese Spannung teile ich mittels eines Spannungsteilers auf ~2.1V und >~0,4V, Ist Käse. >Nur werden mir diese Pins als LOW erkannt, obwohl da noch 2,1V anliegen. Ist doch OK. Der AVR hat schon Schmitt-Trigger Eingänge. MfG Falk
Habe es jetzt mittels Doppelinvertierung gelöst, damit bekommt der MC genau die Werte die er will, 0V und 5V.
Doppelinvertierung ist hübsch, aber in MC-Zeiten völlig überflüssig :-), hat man früher manchmal gemacht, um alles in NAND-Logik erledigen zu können.
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.