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
Code:
// 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);
}
und hier noch mein altes Programm das, wunderbar getan hat
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 0b00000000
Code:
#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;
}
Lesezeichen