ich will auf dem int1 5v anlegen und damit mein fet schalten und außerdem verändern sich die Werte bei normalem licht auch nur sehr schwach.
ich will auf dem int1 5v anlegen und damit mein fet schalten und außerdem verändern sich die Werte bei normalem licht auch nur sehr schwach.
INT1 ist der Portpin PA4. Wie man einen Portpin ein- oder ausschaltet, findest du in der Anleitung zur RP6 Control M32 (RP6_M32_MANUAL_20071031.pdf) auf Seite 18 (Kapitel 3.1.9).
Wenn du mit den Fotowiderständen Probleme hast: Poste hier, wie genau du die LDRs angeschlossen hast und wie dein Programm zum Auslesen aussieht.
Gruß
Dirk
Das ist mein Programm:Dann habe ich die LDR an adc0 und adc1 angeschlossenCode:#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(); 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); }
Geändert von Marian Otte (11.12.2012 um 20:05 Uhr)
ADC0 größer als ADC0?
if (readADC(ADC_ADC0)) > (readADC(ADC_ADC0))
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hallo,
NUR die LDRs?Dann habe ich die LDR an adc0 und adc1 angeschlossen
Siehe Schaltung der LDRs im RP6 Schaltplan um zu sehen wie man es machen muss (Spannungsteiler).
Den INTERNEN Pullup abschalten falls der an sein sollte.
Der Widerstandswert sollte natürlich passend zum Wert des LDR sein.
MfG,
SlyD
Hallo,
Den INTERNEN Pullup abschalten falls der an sein sollte.
Kann mir jemand dazu eine genaue anleitung geben bitte da der Roboter am Freitag laufen muss und die Linie auch erkennen sollte
Der Widerstandswert sollte natürlich passend zum Wert des LDR sein. Was heißt das?
Marian Otte:Ich hatte dir ja die Anleitung zur M32 ab Seite 18 empfohlen: Auf Seite 19 oben wird beschrieben, wie man die internen Pullup-Widerstände aktivieren (umgekehrt auch deaktivieren) kann.Den INTERNEN Pullup abschalten falls der an sein sollte. Kann mir jemand dazu eine genaue anleitung geben bitte ...
Der Widerstand sollte in etwa so groß sein, wie der Widerstandswert des LDR bei einer mittleren Helligkeit. Ideal wäre, wenn das DIE Helligkeit ist, die fast in der Mitte zwischen der Helligkeit auf der Linie und NICHT auf der Linie liegt.Der Widerstandswert sollte natürlich passend zum Wert des LDR sein. Was heißt das?
Gruß
Dirk
Lesezeichen