Guten morgen, ich habe leider an meinem Atmega 8 einen Port zu wenig, um DIP Schalter direkt einzulesen (1 Port pro DIP Schalter). Eine Porterweiterung wäre Verschwendung, da ich nur einen Port zusätzlicht benötige. Ich habe hier im Forum mal gelesen (finde es aber nicht mehr), dass man es auch über den ADC machen kann und über ein Widerstands-Netzwerk. Hat hier jemand genaue Infos (Schaltung, kurze Vorgehensweise bei der ADC-Auswertung) oder einen Link? Danke. Tom
Mit einem Schieberegister würde es viel einfacher gehen. Willst du es trotzdem mit dem ADC machen, dann würde ich ein Summierverstärker bauen, mit gewichteten Widerständen.
Hallo, es sind 2 DIP-Schalter die mir noch fehlen. Jeder soll getrennt erkannt werden können, also im Prinzip 4 Möglichkeiten: - Schalter 1 und 2 nicht gewählt - nur Schalter 1 gewählt - nur Schalter 2 gewählt - Schalter 1 und 2 beide gewählt Danke.
Prüfen. Wenn OK machen: o VCC : 10 K : o----------o Portpin : o--------o : : 10 K 20 K : : o o : : S1 S2 : : GND GND GGF andere Widerstandswerte wählen. S1 S2 U offen offen VCC offen zu 2/3 VCC zu offen 1/2 VCC zu zu 0,4 VCC
Nabend, habe heute Zeit gefunden, den Schaltungsvorschlag von Davis umzusetzen. Läuft gut, der ADC hat eine Abweichung von +/- 1 Wert z.B. für Vcc halbe messe ich statt 511,5 (also 511) 510. 2/3Vcc ist rechnerischer Wert gleich Messwert (682), ebenso Vcc 1023. Bei 0,4Vcc habe ich ebenfalls eine Abweichung von einem ADW-Wert: Berechnet 409,2 (also 409), gemessen 408. Ist die Schwankung des ADCs so oder kann ich hier noch etwas tun. Beschaltet mit 10uH Spule und 100nF gegen GND (AVCC und AREF). Ansonsten kompensiere ich das eben in der Software mit einer Differenz von +/-2... Gruß Tom
Tom schrieb: > Ansonsten kompensiere ich das eben in der Software mit einer Differenz > von +/-2... Zu knapp.... und vor Allem... warum so eine geringe Toleranz?
Tom schrieb: > Ansonsten kompensiere ich das eben in der Software mit einer Differenz > von +/-2... Ähm. Du legst deine Auswerteumschaltpunkte genau zwischen deine errechneten Werte! D.h. das was du vom ADC bekommst untersuchst du, in welchem Bereich(!) es liegt und die Bereichsnummer ist deine Tastennummer. ALso nicht mit +-2 kleckern. Klotzen! Welchen Wert erwartest du bei dem ersten Taster? Welchen Wert beim zweiten Taster? Die Mitte zwischen den Werten ist deine Umschaltschwelle. Ist der gemessene Wert kleiner als diese Schwelle, dann war es der erste Taster. Ist er größer dann der zweite (bzw. der dritte, vierte, etc) ADC Wert ^ + | | --+ theoretisch kriegst du | | in der Praxis akzeptierst du diesen Wert beim Taster 4 -> | | alle Messwerte in diesem | | kompletten Bereich als 'Taster 4' | --+ + | --+ theoretisch kriegst du | | in der Praxis ... diesen Wert beim Taster 3 -->| | | | + |
Machs einfach per SW und nimm eine höhere Toleranz, dann bist Du immer auf der sicheren Seite.
Danke, das war hilfreich. Der Gedanke von Karl Heinz ist natürlich super die Schaltschwelle in die Mitte zu legen.
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.