Forum: Mikrocontroller und Digitale Elektronik Atmel Projekt fragen


von Sebi (Gast)


Lesenswert?

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.

von Lutz (Gast)


Lesenswert?

Trollalarm !!!

von Schiko (Gast)


Lesenswert?

Sebi schrieb:
..Und wie das funktioniert weiß ich überhaupt nicht.

Und was Du vorhast versteht (ich wette nicht nur) ich überhaupt nicht!

von Sebi (Gast)


Lesenswert?

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.

von Wilm (Gast)


Lesenswert?

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.

von Sebi (Gast)


Lesenswert?

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.

von Otto (Gast)


Lesenswert?

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

von holger (Gast)


Lesenswert?

>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.

von Sebi (Gast)


Lesenswert?

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.

von Daniel (Gast)


Lesenswert?

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

von Sebi (Gast)


Lesenswert?

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

von Stulle (Gast)


Lesenswert?

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

von spess53 (Gast)


Lesenswert?

Hi

>ist das richtig

Nicht ganz:

->Timer 65535-39999=25535

Mit CTC ist das Ganze auch ohne Präload möglich.

MfG Spess

von spess53 (Gast)


Lesenswert?

Hi

Muss natürlich

->Timer 65535-39999=25536

heißen.

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
Noch kein Account? Hier anmelden.