Контролери > Ардуино (Arduino)
Малко помощ или разяснение
(1/1)
Lucifurr:
Здравейте! Направих си робот от кита Desktop Bluetootj Mini Smart Car и се опитах да комбинирам управлението с bluetooth от телефона и това да избягва препятствия сам след като натисна определен бутон, но става така че или второто не включва.
Това ми е loop функцията :
val=Serial.read();
if(val=='1')advance();
if(val=='2')back();
if(val=='3')turnL();
if(val=='4')turnR();
if(val=='5')stopp();
if(val=='6')*/
Sensor_Scan();
if(IRSL==1&&IRSM==1&&IRSR==1)advance();
else if((IRSL==0&&IRSM==0&&IRSR==1)||(IRSL==0&&IRSM==1&&IRSR==1)||(IRSL==1&&IRSM==0&&IRSR==1))turnL();
else if((IRSL==0&&IRSM==0&&IRSR==0)||(IRSL==1&&IRSM==0&&IRSR==0)||(IRSL==1&&IRSM==1&&IRSR==0))turnR();
Lucifurr:
Ето я цялата програма :
#define E1 3
#define E2 11
#define M1 12
#define M2 13
int val;
void M_Control_IO_config(void)// initialization function of motor driver shield IO
{
pinMode(M1,OUTPUT); //
pinMode(M2,OUTPUT); //
pinMode(E1,OUTPUT); //
pinMode(E2,OUTPUT); //
}
void advance(void) // move forward
{
digitalWrite(M1,LOW); // right wheel moves forward
digitalWrite(M2, LOW); // left wheel moves forward
analogWrite(E1,150);
analogWrite(E2, 150);
}
void turnR(void) // turn right
{
digitalWrite(M1,LOW); // left wheel moves forward
digitalWrite(M2,HIGH); // right wheel moves forward
analogWrite(E1,150);
analogWrite(E2, 150);
}
void turnL(void) // turn left
{
digitalWrite(M1,HIGH); // left wheel moves backward
digitalWrite(M2, LOW); // right wheel moves forward
analogWrite(E1,150);
analogWrite(E2, 150);
}
void stopp(void) // stop
{
digitalWrite(M1,LOW);
digitalWrite(M2, LOW);
analogWrite(E1, 0);
analogWrite(E2, 0); // both left and right wheel stop
}
void back(void) // move backward
{
digitalWrite(M1,HIGH); // both left and right wheel move backward
digitalWrite(M2, HIGH);
analogWrite(E1,150);
analogWrite(E2, 150);
}
void sensors(void)
{
}
void setup()
{
Serial.begin(9600);
M_Control_IO_config(); // initialization of motor driver shield IO
stopp();
}
void loop()
{
val=Serial.read();
if(val=='1')advance();
if(val=='2')back();
if(val=='3')turnL();
if(val=='4')turnR();
if(val=='5')stopp();
if(val=='6')*/
Sensor_Scan();
if(IRSL==1&&IRSM==1&&IRSR==1)advance();
else if((IRSL==0&&IRSM==0&&IRSR==1)||(IRSL==0&&IRSM==1&&IRSR==1)||(IRSL==1&&IRSM==0&&IRSR==1))turnL();
else if((IRSL==0&&IRSM==0&&IRSR==0)||(IRSL==1&&IRSM==0&&IRSR==0)||(IRSL==1&&IRSM==1&&IRSR==0))turnR();
}
ZiGi88:
--- Цитат на: Lucifurr в Ноември 01, 2017, 11:52:10 am ---..., но става така че ?? ?? ?? или второто не включва.
--- Край на цитат ---
Тук нещо не разбирам какво става.
Иначе в кода:
- не виждам дефиниране и конфигуриране на пиновете за сензорите;
- няма я функцията за четене на сензорите Sensor_Scan();
- има остатък от някакъв коментар - if(val=='6')*/
Навигация
[0] Списък на темите
Премини на пълна версия