hallo Ich möchte gern einen analogen wert einlesen. Der wert kann im bereich 0 bis 3500 liegen. Ist das mit einem Atmeg8 möglich? Wie müsste man da vorgehen, bin noch ganz neu in der elektrotechnik. 0 würde ja 0V entsprechen und wo liegt die obere grenze? 3500 bedeutet 5V?
Unklare Frage. Was meinst du mit "analogem Wert"? Ist der analoge Wert z.B. eine Spannung in Millivolt, ist das sehr einfach möglich. Der Atmega8 hat einen ADC.
Richtig 0 entspräche 0Volt. Der Mega8 hat aber leider nur einen 10Bit (0-1023) AD-Wandler, um den Wert 3500 zu erfassen braucht man 12Bit (0-4095). Wenn die Referenzspannung aus 5Volt eingestellt ist entspricht 5V dem Wert 1023. Wenn es ein AVR bleiben soll gibt es drei Möglichkeiten: 1. einen externen ADC anschließen 2. z.B. den XMega128 verwenden (12Bit ADC intern) 3. überabtasten (16 mal einlesen, aufsummieren, zwei bit nach rechts schieben)
> einen analogen wert einlesen. > Der wert kann im bereich 0 bis 3500 liegen. Die meisten Werte in unserer Umwelt sind analog (Temperatur, Gewicht, Geschwindigkeit, Druck, Feuchtigkeit...). Mit einem AD-Wandler kannst du idR. nur elektrische Werte (Strom, Spannung, Frequenz) in digitale Signale umwandeln. Wie diese Signale dann interpretiert werden (als Zahl, als Bitmuster wie z.B. LED-Balkenanzeige) ist Definitionssache. Bei uC ist der Bereich noch weiter eingeschränkt, der kann "nur" Analog-Spannungen zwischen 0V und Vref wandeln. Die Frage ist also: Was hast du (Sensor...)? und Was willst du (Anzeige...)?
Danke für eure hilfe. also folgende problembeschreibung. ich simuliere gerade einen einfachen dc-motor. dieser bekommt am eingang eingan ein pwm signal und erzeugt mir eine drehzahl von 0 bis 3500 (probiert hab ich es noch nicht). mein simulationsprogramm bietet mir einen aanalog output oder pwm output an. nun da es mit dem analog output nicht so einfach ist,wie wäre es wenn ich den pwm output nutze, indem ich sage: 0 1/min entspricht 0% Duty cycle 3500 1/min entspricht 100% Duty cycle würde das gehen? dann könnte der uc einfach diese pwm signale einlesen und weitervereiarbeiten oder? ich denke manchmal viel zu einfach :) wahrscheinlich hackt es wieder an dem pwm output genauigkeit (Bit auflösung)? Grober hintergrund, ich möchte eine LED in abhängigkeit der Geschwindigkeit blinken lassen. ;)
Zwar mag der Motor sich mit bis zu 3500 U/min drehen, aber das muss nicht mit einer Auflösung von 1 U/min erfasst werden, schon gar nicht, wenn nur eine LED in Abhägigkeit der Drehzahl blinken soll. Letzteres ließe sich ganz simpel mit einem Zählerbaustein realisieren, der mit einem Drehzahlpuls gespeist, bis --sagen wir mal 10-- zählt und dann die LED umschaltet. Damit blinkt die Drehzahl bei 3500 U/min 350 mal in der Minute, also knapp sechs mal in der Sekunde. Bei langsameren Drehzahlen entsprechend langsamer. Wenn ein µC verwendet wird, kann der natürlich den Drehzahlimpuls zählen und selbst die Drehzahl daraus ableiten, da ist weder eine analoge Spannung mit einem ADC zu messen noch ein PWM-Signal zu decodieren.
Ja da hast du recht. Aber würde es denn generell gehen, dass ich meine drehzahl über pwm nach aussem ausgebe? ich habe mal gerechnet bei TTL Pegel hätten wir 0V (0%) und 5V (100%) bei 10 Bit Auflösung wären es ca. 5mV (0,001 Ratio) (3500 U/min)/1023 = 3,42 Das wäre die genauigkeit bei 10 Bit.
> Grober hintergrund, ich möchte eine LED in abhängigkeit der > Geschwindigkeit blinken lassen. ;) Also später in richtiger Hardware? > Aber würde es denn generell gehen, dass ich meine drehzahl über pwm > nach aussem ausgebe? Wo ist aussen? Real-Life? > Das wäre die genauigkeit bei 10 Bit. Was soll denn diese stumpfsinnige Zahlenspielerei. Wenn eine LED blinkt, dann reicht dir später eine zeitliche Auflösung von 10% locker aus. Selbst ein Schlagzeuger hat keine bessere Genauigkeit ;-) Simulation heißt nicht, irgendwas im_Rechner zusammenzuklicken, um danach virtuell eine LED blinken zu lassen. Simulation heißt Nachbildung_der_Realität. Du solltest also einen echten Motor nehmen und dessen Daten simulieren. Nur das macht Sinn. Und davor eine ausgiebige Aufwands-, Fehler- und Auflösungsbetrachtung durchführen. Ich brauche z.B. keine 0,1%-Vorwiderstände für eine LED, auch wenn ich mir so einen Widerstand herrechnen kann ;-)
hallo es geht ja nicht wirklich um die LEDs. die dienen nur als kleiner test ;) ich will ja später ein PWM signal erzeugen in abhängigkeit der Drehzahl. ich will ja einen echten motor nachbilden. muss nur wissen ob ich es mit der drehzahl/PWM ausgang hinbekomme. :(
> ich will ja einen echten motor nachbilden. Welcher Motor gibt PWM als Drehzahlsignal aus? Ich kenne hier nur Pulse/Umdrehung, und das ist nicht PWM. > muss nur wissen ob ich es mit der drehzahl/PWM ausgang hinbekomme. :( Ja, was denn eigentlich?
a) Basic lernen b) C lernen c) Elektronik lernen d) Mikrokontroller lernen i) LED blinken ii) LCD ansteuern iii) A/D Wandler auslesen iiii) PWM erzeugen
Peter Stegemann wrote: > a) Basic lernen > b) C lernen > c) Elektronik lernen > d) Mikrokontroller lernen > i) LED blinken > ii) LCD ansteuern > iii) A/D Wandler auslesen > iiii) PWM erzeugen Lass a) weg. Lern stattdessen Assembler, damit tust du dich bei d) leichter ;-)
Hallo, was nützt es dir, wenn du an eine Sinulationsumgebung einen AVR anschließt, der nichts anderes macht, als etwas anzuzeigen? Das kann man auch gleich als Anzeige mit in die Simulation einbinden. Und wenn du es realisieren willst, wirst du keinen Sensor bekommen, der dir ein PWM Signal aus einer Drehzahl macht. Und wenn du einen nimmst, der aus der Drehzahl eine Spannung macht, ist das purer Unsinn, wenn danach ein AVR zur Auswertung kommen soll. Wie wäre es denn mit einer einfachen Lichtschranke auf der Motorwelle, die bei jeder Umdrehung einen Rechteckpuls liefert? Den gibt man am AVR auf ein Zählregister (Timer) und wertet dieses zyklisch aus. Aber was soll der Unsinn mit Simulationsprogramm->Datenkonvertierung->Analog->Datenkonvertierung->Dig ital->AVR->Anzeige Wie wär es mit Simulationsprogramm->Anzeige. Peter
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.