Du hast immer noch nicht beschrieben, wie genau du die LDR angeschlossen hast. Zusätzliche Libs oder Änderungen im Makefile brauchst du aber bei keinem der Ansätze. Das passende Programm hast du ja schon gepostet.
Du hast immer noch nicht beschrieben, wie genau du die LDR angeschlossen hast. Zusätzliche Libs oder Änderungen im Makefile brauchst du aber bei keinem der Ansätze. Das passende Programm hast du ja schon gepostet.
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
und was muss ich jetz da einfügen? Die LDR's habe ich direkt an die adc ports angeschlossen an pin 3 und 2.
Danke
Marian Otte
Hallo
Pin 2 und 3 sind GND und ADC-Pin:
Bild hier
Das wäre dann die Variante mit aktivierten PullUp:
(ungetestet)Code:#include "RP6RobotBaseLib.h" // Achtung! Die PWM-Werte werden hier OHNE Rampe verändert! void setMotorPWM(uint8_t power_links, uint8_t power_rechts) { extern uint8_t mleft_ptmp, mright_ptmp; if(power_links > 210) power_links = 210; if(power_rechts > 210) power_rechts = 210; mleft_power=mleft_ptmp=power_links; mright_power=mright_ptmp=power_rechts; OCR1BL = power_links; OCR1AL = power_rechts; if(power_links || power_rechts) TCCR1A = (1 << WGM11) | (1 << COM1A1) | (1 << COM1B1); else TCCR1A = 0; } int main(void) { initRobotBase(); DDRA &= ~0b00000011; // Datenrichtung ADC0 und ADC1 ist Eingang PORTA |= 0b00000011; // interne PullUps aktivieren while(1) { writeInteger(readADC(ADC_ADC0), 10); writeString_P(" - "); writeInteger(readADC(ADC_ADC1), 10); writeString_P("\n\r"); if (readADC(ADC_ADC1)) > (readADC(ADC_ADC0)) setLEDs(4); setMotorPWM(100,50); } else { setLEDs(32); setMotorPWM(50,100); } mSleep(100); } return(0); }
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
vielen danke werde es sofort testen
- - - Aktualisiert - - -
kann man den wert des pullups auch ändern weil der roboter erkennt nur wenn ich meinen finger direkt vor den sensor halte und ihn damit verdunkle der wert liegt jetzt bei 1023
und bei deaktiviertem pull up sind die Werte auf schwarzem und weißen papier identisch WARUM?
und wenn diesen befehl zum einschalten des Pins int1 nehemen will sagt der mir das ich erst deklarieren muss aber wie?
DDRC |= IO_PA4;
PORTC |= IO_PA4;
kann mir jemand bitte schnell helfen der Roboter muss nähmlich morgen der linie nach fahren können
Danke
Marian Otte
Geändert von Marian Otte (13.12.2012 um 18:11 Uhr)
Marian Otte:Ja, indem man nicht den internen Pullup nimmt, sondern einen externen Widerstand. In der Schaltung des RP6, die radbruch gepostet hat, sind das R2 und R4.kann man den wert des pullups auch ändern
Der Portpin PA4 gehört zu Port A des Mikrocontrollers und heisst auch nicht IO_PA4, also muss das so aussehen:und wenn diesen befehl zum einschalten des Pins int1 nehemen will sagt der mir das ich erst deklarieren muss aber wie?
DDRC |= IO_PA4;
PORTC |= IO_PA4;
DDRA |= E_INT1;
PORTA |= E_INT1;
Gruß
Dirk
danke
ich habe jetzt einen wiederstand von 200 kilo ohm pro fotowiederstand genommen aber unabhängig voneinander messen die beiden Sensoren immer noch nicht wirklich
wenn der eine Wert hoch geht geht der andere auch mit hoch
Siehe private Nachricht!
Evtl. LDRs mit schwarzer Pappe gegeneinander abschirmen.
Gruß
Dirk
Lesezeichen