Hi und Danke für deine Erklärung da ich mich neu in Arduino einarbeite bin ich für jede Hilfe dankbar und habe großes Interesse zu deinem Sketch.
- - - Aktualisiert - - -
Das ist jetzt mal eine Version, allerdings läuft sie noch nicht bin wohl noch ein wenig eingerostet. Kann mir einer helfen die Fehler aus zu bügeln
und hier noch mein altes Programm das, wunderbar getan hatCode:// 14-19 //Sensoren const int V_LINKS = 14; const int V_MITTE = 15; const int V_RECHTS = 16; const int H_LINKS = 17;; const int H_MITTE = 18;; const int H_RECHTS = 19; //Motoren const int LINKS = 6; const int RECHTS = 5; const int VOR = 4; const int ZURUECK = 2; const int PWM = 3; int pwm 127; void setup() { // put your setup code here, to run once: pinMode(V_LINKS, INPUT); pinMode(V_MITTE, INPUT); pinMode(V_RECHTS, INPUT); pinMode(H_LINKS, INPUT); pinMode(H_MITTE, INPUT); pinMode(H_RECHTS, INPUT); pinMode(LINKS, OUTPUT); pinMode(RECHTS, OUTPUT); pinMode(VOR, OUTPUT); pinMode(ZURUECK, OUTPUT); pinMode(PWM, OUTPUT); } void loop() { analogWrite(PWM, pwm); switch( digitalRead() ) { case digitalRead(V_MITTE) : digitalWrite(ZURUECK, HIGH); break; case digitalRead(V_LINKS) : digitalWrite(ZURUECK, HIGH) | digitalWrite(RECHTS, HIGH) ; break; case digitalRead(V_RECHTS) : digitalWrite(ZURUECK, HIGH) | digitalWrite(LINKS, HIGH) ; break; case digitalRead(H_MITE) : digitalWrite(VOR, HIGH) ; break; case digitalRead(H_LINKS) : digitalWrite(VOR, HIGH) | digitalWrite(RECHTS, HIGH) ; break; case digitalRead(H_RECHTS) : digitalWrite(VOR, HIGH) | digitalWrite(LINKS, HIGH) ; break; default : digitalWrite(VOR, HIGH) | digitalWrite(ZURUECK, HIGH) ; } // put your main code here, to run repeatedly: delay(30); }
Code://Motoren #define VOR 0b00110100 #define ZURUECK 0b00101100 #define LINKS 0b00100110 #define RECHTS 0b00100101 #define GERADE 0b00100111 #define BREACK 0b00111111 #define PWM_DRIVE 0b00100000 #define PWM_LENKUNG 0b00000100 //Sensoren #define V_MITE 0b00111101 #define V_LINKS 0b00111011 #define V_RECHTS 0b00111110 #define H_MITE 0b00101111 #define H_LINKS 0b00011111 #define H_RECHTS 0b00110111 //LED ROT, GREUN #define LED_ROT 0b10000000 #define LED_GRUEN 0b01000000 #define LED_AUS 0b00000000Code:#include <avr/io.h> #include <avr/interrupt.h> #include "Roboter.h" /* #define DURCHLEUFE 256 volatile unsigned int wert=0; //Timer 0 ISR(TIMER0_OVF_vect) { wert++; TCNT0 = 256 -DURCHLEUFE; } */ int main(void) { /*TCNT0 = 256 -DURCHLEUFE; TCCR0 = (1 << CS02)|(1 << CS00); TIMSK = (1 << TOIE0); sei(); */ DDRB = 0xFF; //Ausgang, Motoren DDRC = 0b11000000; //Eingang, Sensoren while (1) { switch( PORTC ) { case V_MITE : PORTB = ZURUECK ; break; case V_LINKS : PORTB = ZURUECK | RECHTS ; break; case V_RECHTS : PORTB = ZURUECK | LINKS ; break; case H_MITE : PORTB = VOR ; break; case H_LINKS : PORTB = VOR | RECHTS ; break; case H_RECHTS : PORTB = VOR | LINKS ; break; default : PORTB = BREACK ; PORTB = LED_ROT ; } } return 0; }







Zitieren


Lesezeichen