Tests der bisher aufgebrachten Peripherie
(EN google-translate)
(PL google-translate)
Bild 0-1: Testperipherie für die nachfolgenden Programme: Sensor, Motor, externe Spannungsversorgung.
Im folgenden werden die bisher aufgebrachten Peripherien getestet:
  | 
1. LED-Leiste
int zustand = 0;
void setup() 
{
    DDRB=255;  
    
}
void loop() 
{
  PORTB=(1<<zustand);
  delay(400);
  zustand++;
  zustand%=8;
}
Code 0-1: Lauflicht.
2. Taster
void setup() 
{
    DDRB=255;  
    pinMode(2,INPUT);  
    digitalWrite(2,1); //Pullup-Widerstand
    pinMode(4, INPUT); 
    digitalWrite(4,1); //Pullup-Widerstand
}
void loop() 
{
    if(digitalRead(2)==LOW)
    {
        PORTB|=0b00001010;
    }
    else
    {
        PORTB&=~0b00001010;
    }
    if(digitalRead(4)==LOW)
    {
        PORTB|=0b11110000;
    }
    else
    {
        PORTB&=~0b11110000;
    }
}
Code 0-2: Taster.
3. Sensoreingänge
int sensorwert = 0;
void setup() 
{
    DDRB=255;      
}
void loop() 
{
  sensorwert = analogRead(2);
  PORTB=(1<<(sensorwert>>6));
  delay(50);
}
Test Sensor links, A2.
int sensorwert = 0;
void setup() 
{
    DDRB=255;      
}
void loop() 
{
  sensorwert = analogRead(3);
  PORTB=(1<<(sensorwert>>6));
  delay(50);
}
Code 0-3: Test Sensor rechts, A3.
1. Motortreiber
//Über die Taster wird die Richtung gewechselt.
//Zuordnung Analog zu Digital
//A0 = D18
//A1 = D19
//A2 = D20
//A3 = D21
//A4 = D22
//A5 = D23
//A6 = D24
//A7 = D25
//A8 = D26
//A9 = D27
//A10 = D28
//A11 = D29
void setup() 
{
    DDRB=255;      
    pinMode(2,INPUT);  
    digitalWrite(2,1); //Pullup-Widerstand
    pinMode(4, INPUT); 
    digitalWrite(4,1); //Pullup-Widerstand
    //LINKER MOTOR
    //A5 als digitaler Ausgang, INPUT 3
    pinMode(23,OUTPUT);  
    //A0 als digitaler Ausgang, INPUT 4
    pinMode(18,OUTPUT);  
    digitalWrite(23,1); //1 eine Richtung
    digitalWrite(18,0); //0
    analogWrite(6,0);
    //RECHTER MOTOR
    //A4 als digitaler Ausgang, INPUT 2
    pinMode(22,OUTPUT);  
    //A1 als digitaler Ausgang, INPUT 1
    pinMode(19,OUTPUT);  
    digitalWrite(22,1); //1 eine Richtung
    digitalWrite(19,0); //0
    analogWrite(5,0);
    
}
void loop() 
{
    if(digitalRead(2)==LOW)
    {
        //linker Motor
        digitalWrite(23,1); //1 eine Richtung
        digitalWrite(18,0); //0
        analogWrite(6,127);
        //rechter Motor
        digitalWrite(22,1); //1 eine Richtung
        digitalWrite(19,0); //0
        analogWrite(5,127);
    }
    else if(digitalRead(4)==LOW)
    {
        //linker Motor
        digitalWrite(23,0); //0 
        digitalWrite(18,1); //1 andere Richtung
        analogWrite(6,127);
        //rechter Motor
        digitalWrite(22,0); //0 
        digitalWrite(19,1); //1 andere Richtung
        analogWrite(5,127);
    }
    else
    {
        //Beide Motore inaktiv
        //linker Motor
        digitalWrite(23,1); //1 eine Richtung
        digitalWrite(18,0); //0
        analogWrite(6,0);
        //rechter Motor
        digitalWrite(22,1); //1 eine Richtung
        digitalWrite(19,0); //0
        analogWrite(5,0);
    }
     
}
Code 0-4: Test Motortreiber.
Sensor-geregelte Fahrt entlang einer Wand
//Über die Taster wird die Richtung gewechselt.
//Zuordnung Analog zu Digital
//A0 = D18
//A1 = D19
//A2 = D20
//A3 = D21
//A4 = D22
//A5 = D23
//A6 = D24
//A7 = D25
//A8 = D26
//A9 = D27
//A10 = D28
//A11 = D29
int sensorwert = 0;
int stellgroesse=0;
int senden=0;
void setup() 
{
    DDRB=255;      
    pinMode(2,INPUT);  
    digitalWrite(2,1); //Pullup-Widerstand
    pinMode(4, INPUT); 
    digitalWrite(4,1); //Pullup-Widerstand
    //LINKER MOTOR
    //A5 als digitaler Ausgang, INPUT 3
    pinMode(23,OUTPUT);  
    //A0 als digitaler Ausgang, INPUT 4
    pinMode(18,OUTPUT);  
    digitalWrite(23,0); //1 eine Richtung
    digitalWrite(18,1); //0
    analogWrite(6,0);
    //RECHTER MOTOR
    //A4 als digitaler Ausgang, INPUT 2
    pinMode(22,OUTPUT);  
    //A1 als digitaler Ausgang, INPUT 1
    pinMode(19,OUTPUT);  
    digitalWrite(22,1); //1 eine Richtung
    digitalWrite(19,0); //0
    analogWrite(5,0);
    Serial.begin(9600); 
    
}
void loop() 
{
    sensorwert = analogRead(2);
    PORTB=(1<<(sensorwert>>6));     
    
    stellgroesse = (sensorwert-100);
    //linker Motor
    analogWrite(6,127-stellgroesse);    
    //rechter Motor
    analogWrite(5,127+stellgroesse);
    
        //seriell senden:
        if(stellgroesse<0)
        {
             senden = -stellgroesse;
             Serial.write('-');
        }
        else
        {
             senden = stellgroesse;
             Serial.write('+');
        }
        Serial.write(48+(senden/1000)%10);
        Serial.write(48+(senden/100)%10);
        Serial.write(48+(senden/10)%10);
        Serial.write(48+(senden/1)%10);        
        Serial.write('\r');        
        Serial.write('\n');        
    
}
Code 0-5: Sensor-geregelte Fahrt entlang einer Wand