Hallo ich würde gerne eine Laserscanner Safety-Einheit bauen.Das ganze mit irgendeinen Atmel. Ich habe mir das ganze bis jetzt so vorgestellt: Die Signale vom DAC einlesen. Die Signale von den Scannern einlesen. Per Timer die Zeit messen. Was ich jetzt leider nicht weiß wie ich im Programm den Code aufbauen muss um z.B. alle 5ms die ADC Werte zu überprüfen.Außerdem möchte ich per Poti die Überprüfungszeit von 5-250ms einstellen können.Und wie das funktioniert weiß ich überhaupt nicht.Ich möchte jetzt keinen fertigen Code oder so aber einfach für mein Verständnis grob erklärt wie man da vorgehen muss. Dann müßte ich mit einen OP irgendwie die Signale -10V - +10V einlesen können.Bis jetzt habe ich noch nie mit einem OP gearbeitet.Wie funktioniert das genau.Ist die Auflösung des Signals wenn ich es mit dem OP umwandel so das der Atmel nicht mehr als 5V bekommt dann nicht schlechter.Da ist irgendwie mein wissen leider auch net so doll.
Sebi schrieb:
..Und wie das funktioniert weiß ich überhaupt nicht.
Und was Du vorhast versteht (ich wette nicht nur) ich überhaupt nicht!
Also ich möchte vom DAC die Signale per ADC einlesen.Wenn die Scanner dann sich innerhalb einer bestimmten Zeit 5-250ms nicht bewegen sollten sollen die Laser abgeschaltet werden.
Da dir scheinbar die Grundlagen zum AVR programmieren in C fehlen würde ich vorschlagen das Tutorial lesen & verstehen & umsetzen http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial oder als Alternative einen Arduino zu nehmen, da hast du weniger Arbeit mit Registern, kannst direkt über per USB programmieren ist für den Einstig vielleicht schneller zu verstehen.
Ich würde das schon gerne mit dem Atmel machen und Bascom. Ich hatte irgendwie gedacht die Signale vom DAC an den Timer input zuhängen.Dann den Timer starten und mit dem Timer Overflow einen interrupt auszulösen und schauen ob von den Scannern Signalveränderungen festzustellen sind oder nicht.Den Timeroverflow auf 5ms einstellen kriege ich noch hin aber diesen wert zu verändern von 5ms-250 da hapert es.
Du bräuchtest im Interrupt nur dir Anzahl der 5ms-Interrupte zu zählen und erst nach Überschreiten des mit dem Poti eingestellten Wertes abschalten. Otto
>Den Timeroverflow auf 5ms einstellen >kriege ich noch hin aber diesen wert zu verändern von 5ms-250 da hapert >es. Oh man. Wie alt bist du eigentlich? Wie wäre es mit Overflows zählen? Bei einem hast du 5ms, bei zwei 10ms, bei drei... darfst du jetzt selber beantworten.
Oh entschuldige das ich Fragen stelle kommt nicht wieder vor.Ich bin leider nicht mit Mikrocontrollern aufgewachsen und muss mich mühsam da rein arbeiten. Danke für die Lösung bin da irgendwie nicht selbst draufgekommen.
Sebi schrieb: > Ich bin > leider nicht mit Mikrocontrollern aufgewachsen und muss mich mühsam da > rein arbeiten. Ging mir und vielen anderen auch so. Deshalb haben wir das Tutorial gelesen. BASCOM ist kacke. Nimm Assembler, C oder zur Not Arduino. http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
Ja C ist nicht so meine Sprache habs versucht bin aber gescheitert. Könnt Ihr mal meine Rechnung überprüfen Also Timer 16bit Prescaler=1 Takt 8Mhz Timer 65535-40000=25535 Timer Startwert 25535 Möchte einen Timeroverflow alle 5ms 8000000/1/40000=200 Overflows in 1S 1S=1000ms 1000/200=5ms ist das richtig
moin <<Laserscanner Safety-Einheit>> sieht anders aus ;) in den Strahlgang des Laser kommt eine Vorrichtung die den Strahl unterbricht und zwar auch dann wenn dein AVR die Grätsche macht ..... mfg
Hi
>ist das richtig
Nicht ganz:
->Timer 65535-39999=25535
Mit CTC ist das Ganze auch ohne Präload möglich.
MfG Spess
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.