Servus,
habe den Sharp IR-Sensor und den Atmel ATMEGA a2560 an stabilisierte 5 V
angeschlossen, außerdem das Signal vom Sharp an PinF.0 (ADC 0) gelegt.
Ab einer bestimmten Entfernung soll eine LED den Status anzeigen..
Leider passiert rein garnichts...
Mit der Variable W habe ich auch schon rumgespielt, umgewandelt, aber
ohne Erfolg..
Wo liegt mein Denkfehler?
Quelltext:
$regfile = "m2560def.dat"
$hwstack = 82
$framesize = 68
$swstack = 68
$crystal = 16000000
Dim W As Word
Config Pind.5 = Output
Led Alias Portd.5
Config Adc = Single , Prescaler = Auto , Reference = Off
Start Adc
Do
W = Getadc(0)
If W > 500 Then Led = 1 Else Led = 0
Waitms 500
Loop
End
Danke
Der Code sieht richtig aus. Wenn du mit den Werten für W schon
rumgespielt hast, denke ich eher das es an der Hardware liegt. Wie ist
der Sensor angeschlossen? Direkt der Ausgang des Sensors an den ADC ohne
weitere Beschaltung?
Wenn ja, dann ist das falsch.
http://www.roboternetz.de/phpBB2/files/plan_772.gif
Im Prinzip so wie unter (1) zu sehen muss der Sensor angeschlossen
werden.
@MArco
Kannste mir das Schaltbild mal in Worten erklären?
Der Sharp machte auf Grund seiner großen Externbeschaltung den Eindruck,
er wäre in der Lage an den MC angeschlossen zu werden..
+ - Signal
Sind die 3 Leitungen vom Sensor....
thx
Ich habe selbst mal einen Plan gezeichnet. Vielleicht sagt der das
besser aus. Den Tiny25 musst du dir als deinen Mega2560 vorstellen und
rechts der TSOP1736 kann man auf Grund seiner Anschlüsse wohl mit dem
Sharp gleichstellen. Zumindest hat er auch einen Signalausgang.
Wenn das nicht hilft, muss ich es weiter in Worten probieren.
Die 10kOhm des Widerstands sind jetzt nur frei gewählt. Sollte der
Wertebereich damit zu klein sein, muss man ihn ggf ändern.
ABER wenn ich den Sensor überbrücke, geht es..d.h. Quelltext etc alles
richtig, aber der Sensor nicht...Gibt es da nen Trick beim anschließen?
Oder ist der Sensor defekt?
SO, aber eine SPannugsmessung ergab, dass der Sensor funktioniert, also
muss es doch irgendwie an der AUSWERTUNG des Signals geben, evtl mit dem
FORMAT, welches ADC zurückgibt?
hülfe, bittee^^
$regfile = "m2560def.dat"
$hwstack = 82 '80
$framesize = 68 ' 64
$swstack = 68 '44
$crystal = 16000000
Dim W As Word , Lev As Single
'Quarzfrequenz
Config Pind.5 = Output
Led Alias Portd.5
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Do
W = Getadc(0)
If W > 800 Then Led = 1 Else Led = 0
Waitms 1
Loop
End
Kannst du dir W nicht über RS232 ausgeben lassen oder auf einem LCD
anzeigen lassen. Dann siehst du schonmal was du überhaupt passiert.
Ist GND vom Sensor mit GND vom Mega2560 verbunden?
Hast du ein Link zum Datenblatt des Sensors?
Wenn alles nicht hilft, fang eine Nummer kleiner an. Mit einem Poti.
Ein Anschluss der Widerstandsbahn auf GND, den anderen auf VCC/VRef und
den Schleifer an den ADC. Je nach Auflösung des ADC (8 oder 10Bit)
bekommst du dann beim drehen am Poti unterschiedliche Werte.
Ptot des Potis aber beachten! Sonst stinkt es unangenehm ;)
nunja,
es kommen unterschiedliche SPannungen aus dem Sensor..
es sollen je nach Abstand 0.3 bis 3V rauskommen, und das tun sie auch..
http://www.technologicalarts.com/myfiles/data/gp2d120.pdf
Mit dem Quellcode oben, leuchtet die LED IMMER....
ja eigentlich schon aber nen versuch kann ja nicht schaden, oder?
miss doch mal die spannung am adc pin ob die sich auch ändert wenn der
sensor angeschlossen ist. wenn ja ... dann weiß ich auch nicht. wenn sie
sich nicht ändert und bei 5V bleibt, weißt du wo der fehler zu suchen
ist.
In der Simulation funktioniert das programm jedenfalls.
Auch auf der Gefahr hin, das ich mich wiederhole...
Sind GND des Sensors und GND des Boards verbunden?
Wie genau ist der Sensor ans Board angeschlossen?
Hast du an den Fusebits was geändert? Steht der Chip auch auf externen
Quarz?
$regfile = "m2560def.dat"
$hwstack = 82 '80
$framesize = 68 ' 64
$swstack = 68 '44
$crystal = 16000000
Config Pind.5 = Output
Led Alias Portd.5
Do
Led=1
waitms 3000
Led=0
waitms 3000
Loop
End
Probier den Code mal aus. Wenn die LED nicht 3 Sekunden an und 3
Sekunden aus ist, stimmt mit der Taktfrequenz was nicht. Und die
Frequenz ist für den ADC auch wichtig. Ich glaube zwar nicht, das es das
ist, aber was anderes bleibt für eine Ferndiagnose z.Zt. nicht offen.
Außer das messen der Spannung direkt am Pin.
lol und jetzt liegen keinen 5V mehr an, aber wenn ich die ~2 V z.b. vom
Sensor anlege, wird die Spannung neutralisiert, dann ergeben die
Messungen nur noch 00V ?
hi leute ich habe auch den mega2560 vom roboternetz und das gleiche
problem! was stimmt den an dem datenblatt nicht? bin das gerade auch
alles stück für stück am analysieren. mich wundert es, das pin 100 und
99 nicht beschaltet sind. laut atmel doku zum mega2560 sollten die für
AVCC (pin100), GND (pin99) und AREF (pin98).pin99 das ist en extra
ground um masseschleifen zu verhindern. ich bin nun so schlau, dass ich
folgendes festgestellt hab:
mega2560 ic selbst:
pin 100 = AVCC (Spannungsversorgung für Port F und den A/D-Wandler)
pin 99 = AGND
pin 98 = AREF (Referenzspannung für A/D-Wandler)
>>ATMEL Doku:
- AVCC is the supply voltage pin for Port F and the A/D Converter. It
should be externally connected to VCC, even if the ADC is not used. If
the ADC is used, it should be connected to VCC through a low-pass
filter.
- AREF is the analog reference pin for the A/D Converter.
>>General:
As inputs, Port A-L pins that are externally pulled low will source
current if the pull-up resistors are activated.
des weiteren müsst ihr noch die registern ändern wenn ihr den
a/d-wandler verwendet, wie das funktioniert könnt ihr ja in der atmel
anleitung zum mega 2560 nachlesen. ich kann euch sowieso nur empfehlen
die orginal hersteller anleitung als referrenz zu nehmen, hatte anfangs
zwar auch erst keine lust da mir das zu viele seiten waren aber so
schlimm ist das gar nicht wenn man es erst mal verstanden hat.
hoffe das ich einigen damit helfen konnte! schreibe gerade aber noch
eine komplette anleitung zum rn-mega2560 weil die anleitung vom
roboternetz total verbuggt ist! habe mich deswegen schon häufig genug
aufgeregt und mir schon einige nächte um die ohren gehauen um als
totaler elektronik anfänger da nun durchzusteigen. mache das erst 4
wochen, aber in der zeit habe ich durch intensivstes lernen schon so
viel neues entdeckt wovon ich vorher nicht den hauch einer ahnung hatte
und muss nun doch leider feststellen, dass es auch beim robotikhardware
bzw. dem roboternetz (werden ja wohl unter einer decke stecken)
anscheinend doch auch wohl nur um das eine geht -> geld. es wird zwar
sehr auf dem board viel geholfen jedoch muss ich auch immer wieder
feststellen, dass es anfängern recht schwer gemacht wird! abgesehen
davon was sich da manchmal für leute rumtreiben kann man das auch auf
der einen seite verstehen. ich habe mich jedoch krampfhaft dazu
gezwungen nicht auf irgendeinem board nach infos zu fragen sondern alles
selber heraus zu finden.
der hintergrund an der sache ist wie man hier schön sehen konnte
folgender: nicht auf den fehlern anderer vertrauen bzw. sie nicht mal
als fehler zu erkennen und dadurch halt nicht weiter zu kommen. das kann
man auch analog in der wissenschaft sehen wie auch in der schule und
fast überall. die menschen verdummen und denken nicht mehr selber,
sondern "lernen" (auswendig lernen aus frust und nicht
verstehen/begreifen aus spaß an der freude) das was ihnen vorgegeben
wird. was dabei raus kommt sieht man ja häufig genug in unserer
gesellschaft.
naja, nun denn möchte ich euch mal nicht länger hiermit quälen da ich
schon viel mehr geschrieben habe als ich eigentlich vor hatte.
mfg m0gwai