hallo leute,
ich möchte den potentiometerwert mittels adc wandler einlesen und an den
leuchtdioden anzeigen, jedoch hab ich da eine frage muss ich einen
spannungsteiler machen wenn ich den wert auslesen will oder reicht es
wenn ich den poti direkt am ADC anschließe?
danke lg thomas
thomas schrieb:> ich möchte den potentiometerwert mittels adc wandler einlesen und an den> leuchtdioden anzeigen, jedoch hab ich da eine frage muss ich einen> spannungsteiler machen wenn ich den wert auslesen will oder reicht es> wenn ich den poti direkt am ADC anschließe?
Beides:
Du schliesst das Poti direkt an den ADC an. Aber du verschaltest es so,
dass es einen Spannungsteiler bildet.
Man kann sich ja ein Poti so vorstellen, dass die Poti-interne
Widerstandsbahn durch den Abgreifer in 2 getrennte Widerstände
unterteilt wird, deren Wert sich ändert, wenn man den Abgreifer
verschiebt.
Und genau das ist ja ein Spannungsteiler: 2 Widerstände, wobei die
gteilte Spannung am Verbindungspunkt der Widerstände abgegriffen wird.
thomas schrieb:> also verbinde ich eines der anschlüsse mit dem ground und die anderen 2> anschlüsse mit den eingängen des ad wandlers?
Das wäre dann kein Spannungsteiler
Ein Endpunkt kommt an GND. Der andere Endpunkt an Vcc.
Am 3. Potianschluss hast du dann eine Spannung, die du durch verdrehen
des Potis von 0 bis Vcc verstellen kannst.
thomas schrieb:> ka wir haben die schaltung von der Schule bekommen und gelötet
Das ist ja das eigentlich traurige.
(abgesehen davon, dass eine Frage nach Beschaltung ganz sicher nichts im
GCC Forum verloren hat)
Die Bezeichnung des Widerstands und der Spule mag eventuell damit
zusmmenhängen, dass der Zeichner ein gewisser "Manfred Schnöll" ist.
Besser wäre von AREF aus mit 100nF an GND gehen und dann die interne
Referenzspannung verwenden. Da kannst Du dann beim ATMega8 AVcc oder
2,56V wählen (siehe Datenblatt S. 201).
Wenn Du hier AVcc wählst, brauchst Du keinen Spannungsteiler mehr und
kannst den Poti wie oben von K. H. Buchegger beschrieben anschließen.
thomas schrieb:> also ich hab den potentiometer wie im Anhang angeschlossen, ist das> soweit ok?
Häng ein Voltmeter an PC0 und sieh nach ob du durch verdrehen des Potis
dort die Spannung ändern kannst.
Manchmal ist man mit Selbsthilfe einfach besser bedient als wie wenn man
für alles und jeden eine Tante braucht, die mit einem aufs Klo Lulu
machen geht.
Wer eine Schaltung zusammenlötet, sollte eigentlich kein Problem damit
haben, mit einem Voltmeter Spannungen nachzumessen.
> d.h. jetzt kann ich mit dem programmieren beginnen oder?
Ja.
Ich hab jetzt ein Problem mit dem Programm :S
Ich hab mein Eingangssignal an PC0 angeschlossen. Jedoch verändern sich
bei den LED´s nichts. Hier ist der Programmcode:
Hallo
Und das ist so ohne Fehler/Warnung compiliert worden?
Die Definitionen von ADC_init und ADC_read haben absolut
garnichts innerhalb der main zu suchen.
Gruß
Joachim
Die Funktionen
ADC_Read und ADC_Init sind auch innerhalb von main deklariert.
Dafür werden sie nicht aufgerufen.
Und eine Hauptschleife habe ich auch nicht gefunden.
Hast Du schon mal was in C programmiert?
thomas schrieb:> er bekommt ja vom ad wandler die spannungswerte wenn der wert 0,7 is> soll er die erste led zum leuchten bringen
Wie soll bitte ein 16Bit Integer den Wert 0,7 kriegen?
Was weisst Du von Ganzzahl und Fliesskomaadatentypen?
thomas schrieb:> Ich hab jetzt ein Problem mit dem Programm :S> [/c]
Naja, für jemanden, der einfach mal lötet und einfach mal programmiert
ist das gar nicht so schlecht. Im Wesentlichen ist ja alles da... ;-)
Jetzt noch die einzelnen Elemente richtig sortieren, dann wird das
schon.
Floh schrieb:> [X] du brauchst ein C-Buch.
[X] Du musst das Buch lesen
[X] Du musst die Grundlagen auch verstehen
[X] Du musst wissen wie ein µC und seine Peripherie prinzipiell
funktioniert
Entweder
[ ] Du hast einen total besch. Lehrer.
oder
[ ] Du bist zu faul um im Unterricht aufzupassen
U.R. Schmitt schrieb:> Floh schrieb:>> [X] du brauchst ein C-Buch.>> [X] Du musst das Buch lesen> [X] Du musst die Grundlagen auch verstehen> [X] Du musst wissen wie ein µC und seine Peripherie prinzipiell> funktioniert>> Entweder> [ ] Du hast einen total besch. Lehrer.> oder> [ ] Du bist zu faul um im Unterricht aufzupassen
Nana, Schüler und Anfänger. Ich finde seinen Ansatz sehr kreativ und gar
nicht mal so verkehrt!
../ad_wandler_1.c:70: error: expected declaration or statement at end of
input
make: *** [ad_wandler_1.o] Error 1
Build failed with 1 errors and 0 warnings...
da komt die fehlermeldung heraus
thomas schrieb:> ../ad_wandler_1.c:70: error: expected declaration or statement at end of> input> make: *** [ad_wandler_1.o] Error 1> Build failed with 1 errors and 0 warnings...>>> da komt die fehlermeldung heraus
Na denken musst du schon auch ein bißchen. Vielleicht fehlt das
Semikolon bei der While-Schleife?
thomas schrieb:> ../ad_wandler_1.c:70: error: expected declaration or statement at end of> input> make: *** [ad_wandler_1.o] Error 1> Build failed with 1 errors and 0 warnings...>>> da komt die fehlermeldung heraus
UNd? Was steht an Zeile 70 oder in der Zeile davor?
Daniel V. schrieb:> thomas schrieb:>> ../ad_wandler_1.c:70: error: expected declaration or statement at end of>> input>> make: *** [ad_wandler_1.o] Error 1>> Build failed with 1 errors and 0 warnings...>>>>>> da komt die fehlermeldung heraus>> Na denken musst du schon auch ein bißchen. Vielleicht fehlt das> Semikolon bei der While-Schleife?
Seit wann braucht es da ein Semikolon.
Allerdings:
* Code einrücken wäre angebracht.
* Die DDR macht man am Programmanfang und lässt sie dann nach
Möglichkeit in Ruhe.
* Das hier
PORTC=PORTC &222;
ist wohl so ziemlich die schlimmste Schreibweise die man finden kann.
Da sieht man so gar nicht was da eigentlich passiert.
Da ist ja die Schreibweise als Binärkonstante noch besser.
thomas schrieb:> das einzige was wir vom lehrer lernen is schauts im tutorial nach :D
Also das erstere :-( Was für eine Ausbildung/Schule machst Du denn
(Klasse Lehrjahr)
Dein Problem ist daß Dir so wie es aussiehst überall die Grundlagen
fehlen. Du brauchst auf jeden Fall ein C-Buch und das musst du lesen und
verstehen.
Für hier und jetzt:
Unterschied zwischen verschiedenen Datentypen?
Unterschied zwischen Zuweisung und Vergleichsoperator?
Was ist eine Funktion und wie rufe ich sie auf?
Was ist main()?
und und und...
Wenn Du das Interesse hast, dann klappt das auch mit der Zeit und Du
kriegst bei einzelnen Problemen hier Hilfe.
Daniel V. schrieb:> Nana, Schüler und Anfänger. Ich finde seinen Ansatz sehr kreativ und gar> nicht mal so verkehrt!
Halt typisch irgendwelche Beispiele durchgeflöht und zusammenkopiert
ohne auch nur annähernd zu verstehen was los ist.
Sorry ich bin noch von der alten Fraktion die sagt lieber erst mal nur 5
Zeilen Code aber die selber geschrieben und verstanden. Auch wenn hinten
nur "Hello World" rauskommt.
thomas schrieb:> mit UND und ODER kann man ja bits setzen oder löschen deshalb die> schreibweise
Aber man nimmt da keine Dezimalzahlen!
Du gibst ja Zeiten auch nicht Einheiten der Protonzerfallsdauer an,
sondern nimmst eine der Problemstellung angepasste Einheit.
Sofern die LED leuchten, wenn eine 1 am Portbit ausgegeben wird.
Edit: Was bei dir nicht der Fall ist.
D.h. du hast dann ein LED Band, bei dem die LED ausgehen, je höher die
Spannung wird.
Ausserdem:
laut Schaltplan liegen die LED an PC0, PC1, PC3, PC4 und PC5.
Lediglich PC2 ist soweit frei, dass man dort ein Poti anschliessen
könnte.
Den ADC liest man daher nicht vom Kanal 0, sondern vom Kanal 2
Es sei denn natürlich, dein Schaltplan von weiter oben stimmt so nicht
mehr.
Also: Wo hast du dein Poti angeschlossen?
Was hast du mit der LED gemacht, die normalerweise auf PC0 gejumpert
ist?
Karl heinz Buchegger schrieb:> Ausserdem:> laut Schaltplan liegen die LED an PC0, PC1, PC3, PC4 und PC5.> Lediglich PC2 ist soweit frei, dass man dort ein Poti anschliessen> könnte.>> Den ADC liest man daher nicht vom Kanal 0, sondern vom Kanal 2>> Es sei denn natürlich, dein Schaltplan von weiter oben stimmt so nicht> mehr.
Naja, der Kanal 0 kam von mir, hab einfach mal irgendeinen genommen...
Daniel V. schrieb:> Karl heinz Buchegger schrieb:>> Ausserdem:>> laut Schaltplan liegen die LED an PC0, PC1, PC3, PC4 und PC5.>> Lediglich PC2 ist soweit frei, dass man dort ein Poti anschliessen>> könnte.>>>> Den ADC liest man daher nicht vom Kanal 0, sondern vom Kanal 2>>>> Es sei denn natürlich, dein Schaltplan von weiter oben stimmt so nicht>> mehr.>> Naja, der Kanal 0 kam von mir, hab einfach mal irgendeinen genommen...
Ist ok.
Nur: AN PC0 kann man auch über den Jumper eine LED drann hängen.
Was hast du mit der LED gemacht? Ist der Jumper offen? (Denn dann hast
du nur 4 LED zur Verfügung und nicht 5)
Karl heinz Buchegger schrieb im Beitrag #1937955:
> Ist ok.> Nur: AN PC0 kann man auch über den Jumper eine LED drann hängen.> Was hast du mit der LED gemacht? Ist der Jumper offen?
Ich mach garnix mit dem Board. Das war nur ein Beispiel von mir. Der TE
hat doch das Problem...
Daniel V. schrieb:> Karl heinz Buchegger schrieb im Beitrag #1937955:>>> Ist ok.>> Nur: AN PC0 kann man auch über den Jumper eine LED drann hängen.>> Was hast du mit der LED gemacht? Ist der Jumper offen?>> Ich mach garnix mit dem Board. Das war nur ein Beispiel von mir. Der TE> hat doch das Problem...
Offentliche Entschuldigung.
Ich hab übersehen, dass diese Antwort nicht von thomas kam.
Trotzdem liegt es jetzt an ihm, aufzuzeigen, was er aus seinem
Schaltplan gemacht hat. Der lässt ja durch die Jumper gewisse Freiheiten
zu.
thomas schrieb:> Ich hab nur bei JMP2 einen Jumper reingesetzt, bei den anderen hab ich> keine jumper drinnen
Was ist mit J13,J14,J15,J16,J17 (die LEDs) ???? Wo hängt das Poti dran?
das poti hab ich an einem ende an vcc das andere ende am gnd und den
mittleren ausgang am eingang vom ad wandler, und bei j13 - j17 hab ich
halt die leds
thomas schrieb:> das poti hab ich an einem ende an vcc das andere ende am gnd und den> mittleren ausgang am eingang vom ad wandler
Kabel direkt gelötet, oder wie?
> und bei j13 - j17 hab ich> halt die leds
Also doch Jumper, oder wie?
Wenn du dein Poti an den PC0 geklemmt hast, dann kannst du die dort
befindliche LED nicht benutzen. Du kannst nicht gleichzeitig am selben
PIN mit dem ADC die Spannung messen und dann auch noch eine LED an
diesem Pin ansteuern. Das heißt, können tust du schon, nur wird dann der
ADC nur Unsinn messen.
thomas schrieb:> das poti hab ich an einem ende an vcc das andere ende am gnd und den> mittleren ausgang am eingang vom ad wandler, und bei j13 - j17 hab ich> halt die leds
Jo mei, dann schalte doch erstmal die LEDs ohne AD-Wandler an und aus
und schau ob das klappt. Ohne Jumpers werden die LEDs keinen Kontakt zum
µC haben...
thomas schrieb:> Ich hab nur bei JMP2 einen Jumper reingesetzt, bei den anderen hab ich> keine jumper drinnen
Wieso JMP2?
Das ist doch der Jumper am unteren Ende vom µC im Schaltplan, mit dem
man sich selbst den Reset Pin unter dem Hintern wegziehen kann.
Oder meinst du einen anderen?
Sieh mal:
Von unserer Seite des Bildschirms kann keiner auf deine Platine schauen.
Wir haben nur den Schaltplan und das was du erzählst. Und das was du
erzählst passt so gar nicht zu dem, was sich laut Schaltplan als
vernünftig darstellt.
ich hab schon verschiedene programme geschrieben mitdenen ich die leds
ansteuern konnte d.h. so leuchten lassen konnte wie ich es wollte z.b.
blinkled oder das alle der reihe nach leuchten bei den leds sollte daher
kein problem bestehen
thomas schrieb:> ich hab schon verschiedene programme geschrieben mitdenen ich die leds> ansteuern konnte d.h. so leuchten lassen konnte wie ich es wollte z.b.> blinkled oder das alle der reihe nach leuchten bei den leds sollte daher> kein problem bestehen
Also sind die Jumper dort gesetzt?
Gut.
Nur: an PC0 musst du den LED Jumper entfernen, wenn du den Pin als ADC
Eingang benutzen willst.
ich hab nur den roten jumper drinnen, bei den leds gibts die jumper die
eingezeichnet worden sind überhaupt nicht ich hab unten bei der platine
nachgeschaut :S
den befehl der die erste led ansteuert hab ich einfach rausgenommen
jedoch weis weis ich nicht wie sie auf die werte 60,90,120,150 gekommen
sind ich hab die werte willkürlich geändert und herausgefunden das das
programm geht, jetzt müsste ich nur wissen wie sie zu den werten
gekommen sind um das ganze genauer zu machen
ich verwende einen 8,2k potentiometer
spannung am potentiometer max 3,6V