PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATTINY 2313 Timer mit Drehimpulsgeber



Markus87
21.09.2011, 11:10
Hallo,

ich habe vor eine Timersteuerung für mein Belichtungsgerät zu bauen, habe ein bisschen gegoogelt und bin auf ein interessantes Projekt gestoßen:http://www.kreatives-chaos.com/artikel/belichtungstimer

Ungefähr so etwas stelle ich mir vor, allerdings würde ich die Zeit gerne über einen "Drehknopf" einstellen. Da der ATTINY 2313 ja keinen AD-Konverter enthält habe ich mir überlegt das über einen Drehimpulsgeber zu machen. Allerdings habe ich von diesem garkeine Ahnung da gibt es ja auch sicher verschiedene ausführungen. Bei mir ist es ja zb.: nicht wichtig welche aktuelle Position der Impulsgeber hat ich brauche nur festzustellen ob er nach links oder nach rechts gedreht wird und das es dann zb.: für den Controller so aussieht das zb.: alle 10° links drehen Schalter x gedrückt wurde und alle 10° nach links drehen schalter y gedrückt wurde. Habe mir schon einen Impulsgeber rausgesucht:http://www.reichelt.de/Drehimpulsgeber/STEC12E06/index.html?;ACTION=3;LA=444;GROUP=B29;GROUPID=3714 ;ARTICLE=73917;START=0;SORT=artnr;OFFSET=100;SID=1 3TdK6bn8AAAIAABle6bY24d78994e9cb075ab12ae21982a31e 9f

Jetzt die Frage:

1. Kann ich den Impulsgeber so simpel auslesen ?

2. Die gemeinsame Kathode der 7-Segment Anzeigen (siehe Schaltplan im 1.Link) kann ich doch auch direkt über einen Port auf Masse ziehen, also ohne Transistor ?

Vielen Dank ;)

radbruch
21.09.2011, 12:01
Hallo

Zu 1: https://www.roboternetz.de/community/threads/44298-Drehimpulsgeber?p=427168&viewfull=1#post427168

Zu 2: Wenn alle 7 Segmente eingeschaltet sind fließt durch die Kathode natürlich auch der 7-fache LED-Strom. Allerdings könnest du die zur Anzeige benötigten Segmente auch einzeln nacheinander ansteuern. Dann würde zwar die Helligkeit geringer werden, aber du könntest dir den Transistor sparen.

Gruß

mic

PICture
21.09.2011, 13:15
Hallo!


2. Die gemeinsame Kathode der 7-Segment Anzeigen (siehe Schaltplan im 1.Link) kann ich doch auch direkt über einen Port auf Masse ziehen, also ohne Transistor ?

Das kannst du nur bei "low current" Anzeigen (mit ca. 3 mA pro Segment) machen, sonst wie radbruch schrieb. ;)

Besserwessi
21.09.2011, 16:39
Zur programmierung steht noch einiges im RN Wissen:
http://www.rn-wissen.de/index.php/Überlegungen_zur_Drehgeber-Auswertung#Programmtechnische_Umsetzung

Da der Impulsgeber mechanisch ist, muss man mit Prellen rechnen. Die ganz einfache Auswertung geht deshalb nicht gut. Für die Einstellung von Hand ist das aber nicht so kritisch, denn man verfolgt ja die Anzeige.

Alternativ zum Drehgeber könnte man auch einen einfachen langsamen AD-Wandler extern aufbauen und so den Poti auslesen. Der Widerstand wird z.B. in eine Verzögerungszeit umgesetzt und dann die Zeit gemessen. Sonst gäbe es als Alternative zum Tiny 2313 z.B. den Tiny261 mit AD wandler.

Markus87
21.09.2011, 19:47
Hmm, also da ich eh noch Anfänger in Sachen Assembler bin werde ich mich dann wohl doch für die Variante mit dem Tiny261 und dem Poti entscheiden. Allerdings habe ich da so meine Zweifel ob man mit so einem Poti welches man vernünftig per Hand bedienen kann zb.: so eins http://www.reichelt.de/Potis-mit-Schalter/PO6M-S-LIN-100K/index.html?;ACTION=3;LA=2;ARTICLE=88320;GROUPID=31 37;SID=13TdK6bn8AAAIAABle6bY24d78994e9cb075ab12ae2 1982a31e9f
eine vernünftige Auflösung erreicht. Das man von 1 sek. bis sagen wir 360 sek. dann den Timer einstellen kann. Dann müssten nämich bei 5V Versorgungsspannung alle 13 mV eine Sekunde bedeuten. Außerdem müsste ich ja dem Poti noch nen Vorwiederstand verpassen das ich keinen Kurzschluss habe wenn das Poti auf "0" gedreht ist.

Allerdings habe ich auch 12V zur Verfügung aber weiß jetzt nicht ob der AD Wandler nicht nur bis 5V verarbeiten kann?

Meint ihr da komm ich mit der Auflösung mit dem Poti hin und welche Werte für Poti und Vorwiederstand sind dann sinvoll ?

Gruß

Besserwessi
21.09.2011, 20:08
Das mit dem Vorwiderstand zum Schutz des Poti ist überhaupt kein Problem: Der Poti wird als Spannungsteiler geschaltet: die Ende an GND und AVCC und der Schleifer an den AD Eingang, wenn mit will noch mit etwa 1-10 K als Serienwiderstand als Schutz falls man im Programm versehentlich den Pin als Ausgang stellt.
Mit einem normalen Poti kann man aber kaum mehr als etwa 50 Werte auslösen, schon rein mechanisch wird das schwer. Der AD Wandler könnte auch noch etwas mehr und würde für die 360 Werte reichen. Mögliche Lösungen für das Problem wären eine nichtlineare Teilung am Poti (braucht aber eine umständliche Beschriftung) oder ein zusätzlicher Schalter / Stufenschalter dazu.

So kompliziert ist das mit dem Inkrementalgeber auch nicht. Es ist allerdings eher nicht nötig den Code in ASM zu schreiben. Das kann man auch in einer Hochsprache wie C oder Basic machen.