Archiv verlassen und diese Seite im Standarddesign anzeigen : Schaltgeschwindigkeit CNY70-SchmittTrigger-ATMega64L
Hi!
Ich habe einen CNY70 Reflexkoppler vor das Loch an einem Getriebemotor gebaut und möchte damit die Drehzahl überwachen.
Im Moment ist das ganze über ein Poti einstellbar und über einen Schmitt-Trigger mit dem ATMega64L verbunden, und funktioniert auch, aber nur bei geringen Motorgeschwindigkeiten.
Nun ist die Frage, was das langsamme Element ist, der CNY70, Trigger oder sogar der Controller, der die (bei 6000upm) 100 Impulse pro Sekunde nicht Auswerten kann?
Wie kann man das Problem Lösen? Optotransistor direkt an den AD-Eingang hängen?
Gruß; MK
Wie kann man das Problem Lösen?
Durch Messen.
Messen bis zu wecher Frequenz die Schaltung funktioniert und dann wenn kein Oszilloskop zur Verfügung steht, zum Vergeich einen Frequenzteiler (z.B. CD4040) vor den Controller schalten.
Manfred
OK, war vielleicht etwas blöd von mir formuliert; es geht nicht darum herauszufinden, an was es liegt, sondern darum, das es funktioniert, sprich was gibt es für Alternativen?
gn8, MK
Induktionsaufnehmer :-)
Spass beseite, wie breit sind die reflektierenden / nichtreflektierenden Zohnen ? Da koennte man die Signalbreite bestimmen und den Rest dahingehend betrachten.
Heinz
personal.telefonica.terra.es/ web/x-robotics/downloads/datasheets/cny70.pdf
Der CNY70 ist grundsätzlich sicher schnell genug für die 100Hz, nur er fokussiert nicht. Im Bild 11 des Datenblatts steht, dass eine reflektierende Fläche im Abstand von 1mm um ganze mm verschoben werden muß, um eine Signal zu erbingen.
Am besten erkennt man die Bedeutung des Bildes in der Mitte, bei der größten Steigung. Das Muster sollte eine Streifenbreite von 3-4mm haben.
Manfred
Also die Reflektierende Fläche ist ca. 3mm breit und der Rest bei ca. 6mm Durchmesser 16mm. Macht also eine Signalbreite von etwa 1,5ms, wenn ich das richtig verstanden habe. Habe mal ein Foto zur Verdeutlichung gemacht, was der Sensor sieht.
http://www.web-upload.de/data/media/20/CNY.JPG
Gruß, MK
PS: Auch wenn's vielleicht grade nicht passt: Was für ein Datentyp bringt getadc() im AVRco e-Lab und wie bekommt man den auf interger?
Ok, das Software-Problem habe ich gelöst, indem ich den Word Wert (getadc) in einen String umgewandelt habe und diesen dann zurück in Byte zur Ausgabe am Port.
Habe jetzt den CNY70 direkt am Analogeingang angeschlossen, funktioniert auch soweit nur halt vieeel zu langsam...mir kommt es so vor, als ob der nicht mal 2 Abfragen pro Sekunde hinbekommt.
Habt ihr ne Idee, wie man das Lösen kann?
Gruß, MK
Der Atmega hat bei den analogen Eingaengen einen Komperator, der einen IRQ generieren kann. Mit einen Eingang auf VCC/2 und den anderen als "Messeingang" sollte das ganze schnell genug werden.
Ansonsten kannst Du versuchen, ein normales Portpin zu nehmen - die Systemlast ist aber durch den Pollingbetrieb entsprechend hoch.
Heinz
Kannst du mir erklären was Polling-Betrieb ist? Hab nämlich auch nicht wirklich was darüber gefunden, außer, dass es wie Offline-Betrieb sein soll, was mir aber genauso wenig sagt.
Danke.
Gruß, MK
Polling: Abfrage des Sensors per Software in einer Schleife - also ohne Interrupt!
Danke!
Habe die Schaltung jetzt nochmal neu aufgebaut und den Sensor näher ran (in den Mototr rein) gebracht. Dadurch läuft's jetzt ganz gut, nur ich glaube trotzdem, dass der ein paar Takte verschluckt, denn um 256 Impulse zu zählen dauert es ca. 3 Sekunden, was ca. 30 Umdrehungen pro Sekunde entspricht, es müssten aber 100 sein.
Naja, mal sehen, jetzt muss ich mich erst mal mit den Software-Problemen in AVRco auseineandersetzen...FreqCount usw.
Grüße; ähM_Key
Das Problem ist, das Du aller WK den A/D-Wandler fuer die Erfassung nutzt. Wenn Du ohnehin einen Schmitttrigger nachgeschalten hast, kannst Du das ganze an ein normales Portpin fuehen, dort sollten noch Aenderungen im 2 oder 3 stelligen KHz-Bereich erfassbar sein.
Heinz
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.