Witam. Zrobiłem autonomiczne autko. Pojedyńcze elementy gdy wywołuję działają bez zarzutu, gdy wrzuciłem wszystko w jeden kod nie działa nic. Mógłby ktoś spojrzeć i wskazać błędy. Według mojego rozumowania wszystko powinno działać bez zarzutu.
Czyżby nie było nikogo, kto wie, gdzie mam problem ?
Pod względem składniowy program jest napisany prawidłowo, kompiluje się, bez problemu. Wycieków pamięci nie ma - sprawdzone. Musi być błąd z wywołaniem funkcji, ale go nie widzę niestety.
Proszę posty edytować a nie generować nowe
Kod:
//Algorytm sterowania autonomicznym autkiem
//Diode - Lighting
int blinkierLeftPin = 1;
int blinkierRightPin = 2;
int positionalLightPin = 3;
int reverseLightPin = 4;
//Engine - drive
int enablePin1 = 5; // Signal PWM Engine
int in1Pin = 6; // Signal's control drive engine
int in2Pin = 7;
//Electromagnet - control
int enablePin2 = 8; // Signal PWM Control
int in3Pin = 9; // Signal's left or right
int in4Pin = 10;
//Sensor distance
int echoPin = 11;
int trigPin = 12;
int dis;
int p = 0;
void setup(){
Serial.begin(9600);
pinMode(blinkierLeftPin, OUTPUT);
pinMode(blinkierRightPin, OUTPUT);
pinMode(positionalLightPin, OUTPUT);
pinMode(reverseLightPin, OUTPUT);
pinMode(enablePin1, OUTPUT);
pinMode(in1Pin, OUTPUT);
pinMode(in2Pin, OUTPUT);
pinMode(enablePin2, OUTPUT);
pinMode(in3Pin, OUTPUT);
pinMode(in4Pin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
}
int main(void){ //loop(){
//Start
//digitalWrite(positionalLightPin, HIGH); //PositionalLight ON
//EngineStart();
//Sensor();
if(p == 0){
EngineStart();
TurnRight();
delay(2000); //Waiting 2sec
}else{
TurnLeft();
EngineRevers();
delay(2000); // Waiting 2sec
}
EngineStart();
//delay(5000); //Waiting 5sec
digitalWrite(positionalLightPin, LOW); //PositionalLight OFF
p++;
return -1; // zakończenie programu
}
void EngineStart(){
digitalWrite(6, LOW); //Engine - sales in left
digitalWrite(7, HIGH);
for(int i = 100; i <= 255; i++){
analogWrite(5, i); //Low-High (0 - 255) speed Engine
Serial.println(i + "front");
delay(5000); // Waiting 5 sek.
}
}
void EngineRevers(){
digitalWrite(6, HIGH); //Engine - sales in right
digitalWrite(7, LOW);
digitalWrite(4, HIGH); //ReversLight ON
for(int i = 50; i <=100; i++){
analogWrite(5, i); //Low-High (0 - 255) speed Engine
Serial.println(i + "Revers");
delay(3000); // Waiting 3sek.
digitalWrite(4, LOW); //ReverseLight OFF
}
}
void TurnLeft(){
analogWrite(8, 255); // MAX turn left
digitalWrite(9, LOW); //Control - left
digitalWrite(10, HIGH);
digitalWrite(1, HIGH); //blinkierLeft
delay(500);
digitalWrite(1, LOW);
delay(500);
}
void TurnRight(){
analogWrite(8, 255); // MAX turn Right
digitalWrite(9, HIGH); //Control - Right
digitalWrite(10, LOW);
digitalWrite(2, HIGH); //blinkierRight
delay(500);
digitalWrite(2, LOW);
delay(500);
}
void Sensor(){
digitalWrite(trigPin, HIGH);
delay(10);
digitalWrite(trigPin, LOW);
int distance = pulseIn(echoPin, HIGH);
dis = distance/58; //obliczenie odległosci w CM
Serial.println(dis);
}
Z góry dzięki za pomoc :)
Czyżby nie było nikogo, kto wie, gdzie mam problem ?
Pod względem składniowy program jest napisany prawidłowo, kompiluje się, bez problemu. Wycieków pamięci nie ma - sprawdzone. Musi być błąd z wywołaniem funkcji, ale go nie widzę niestety.
Proszę posty edytować a nie generować nowe