Точку с запятой поставь
PHP код:
if (digitalRead(back_on)==LOW & int tmp==LOW );
Точку с запятой поставь
PHP код:
if (digitalRead(back_on)==LOW & int tmp==LOW );
Последний раз редактировалось Chip; 13.04.2011 в 03:14.
ставил ошибка не ушла.
sketch_apr12a.cpp: In function 'void loop()':
sketch_apr12a:16: error: expected primary-expression before 'int'
sketch_apr12a:16: error: expected `)' before 'int'
Последний раз редактировалось 4ertik131; 13.04.2011 в 03:36.
Проверь правильность расстановки скобок, вот этих {}.
Ты бы хоть для приличия учебник почитал
Компилятор тебе написал в какой строке и какая ошибка.
PHP код:
int av_mode = 12; //Выход для нажатии кнопки
int back_on = 13; //вход сигнал включения задней скорости
void setup()
{
pinMode(av_mode, OUTPUT);
pinMode(back_on, INPUT);
digitalWrite(back_on, HIGH); //Подключить внутренний подтягивающий резистор
digitalWrite(av_mode, LOW);
Serial.begin(115200);
}
//-----------------------------------------------
void loop()
{
int tmp=digitalRead(back_on);
delay(5000);
if (digitalRead(back_on)==LOW & tmp==LOW ); //включен ли задний ход
{
digitalWrite(av_mode, HIGH);
while(digitalRead(back_on) == LOW)
{
}
delay(500); //ЗДЕСЬ МОЖНО СДЕЛАТЬ ЗАДЕРЖКУ ВЫКЛЮЧНИЯ КАМЕРЫ ЗХ
digitalWrite(av_mode, LOW);
}
}
Последний раз редактировалось Chip; 13.04.2011 в 12:00.
ох чувствую скоро полетят в меня табуретки ...
такая картина на 12 выходе постоянно с delay(5000) появляется HIGH (4.6вольта)
на время delay(500) не зависимо что на входе 13("-" или его отсутствие).
для камеры заднего хода можно и убрать delay(500)(и тогда все работает как надо) но вот для обгонной нужна задержка минимум 10 сек пока не вернулся в свой ряд совершив обгон и так же задержка на включение.
Последний раз редактировалось 4ertik131; 13.04.2011 в 13:57.
нашел как выставить задержки немного по другому. при много благодарен за помощь и терпение
Мой вариант без программной задержки (ну очень уж она мешала в моем проекте):
Задержку на выключение не делал.PHP код:
iint back_on = 12; //номер порта для сигнала заднего хода
boolean time_flag=false; // статус счетчика
boolean cam_on=false; // статус работы камеры
unsigned long time_cam;
void setup()
{
pinMode(av_mode, OUTPUT);
pinMode(back_on, INPUT);
digitalWrite(back_on, HIGH); //Подключить внутренний подтягивающий резистор
digitalWrite(av_mode, LOW);
Serial.begin(115200);
}
//-----------------------------------------------
void loop()
{
camBack;
}
void camBack()
{
if (digitalRead(back_on) == LOW) // обрабатываем "ноль"
{
if (cam_on == false) // если камера не включена
{
if (time_flag == false) // если таймер не включен
{
time_cam = millis(); // засекаем время в "нуле"
time_flag = true; // уставливаем флаг счетчика
}
else // таймер включен
{
if ((millis()-time_cam) > 1000) // если прошло > 1 сек
{
time_flag = false; // сбрасываем флаг счетчика
cam_on = true; // камера включена
Serial.println("CamBack_on"); // в этоЙ строке д.б. команда на включение камеры
}
}
}
}
else // обрабатываем "единицу"
{
if (cam_on == true) // только когда камера включена
{
cam_on = false; // камера выключена
Serial.println("CamBack_off"); // в этоЙ строке д.б. команда на выключение камеры
}
}
}
Будьте внимательны, на самом деле ноги 1 и 2 на РС817 расположены по-другому )
Долго не мог понять почему не работает схема, пока не полез в даташит )
Так на корпусе микросхемы есть точка напротив 1 вывода
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)