Ну наверно потому что я не просто так его нарисовал.
На вход Ардуино нельзя подавать больше чем 5в, иначе ему придет смерть
Зачем такой мощный, достаточно любой аналог КД521
Что-то не работает эта схема. Диод КД521 подключен анодом к D12 порту, как на схеме.
В начальный момент напряжение на катоде 0 В, на аноде около 0,63 В. Подаю на катод 12 В, на аноде опять 0,63 В. Соответственно Ардуиновский код не работает. В чем может быть дело?
Последний раз редактировалось skull; 25.06.2010 в 16:32.
А лампочку имитируешь? Через спираль лампочки вход подтягивается к земле
как то плохо у меня с электроникой =( Понять не могу. Использую комповый блок для имитации 12В. Мерим напряжение на БП - 11.50В. Подключаем диод КД521, на выходе 11.40В в обратном направлении 0.13В - ну это почти ноль. И как быть если к ардуине можно только 5В максимум подать?
Поставлю вопрос по другому. Сигнал на задний ход у меня приходит -12В (ну на колодке от стоковой магнитолы так, грех не воспользоватся =) Скетч уже отладил. Для тестов брал -5В (землю). Как мне из -12В сделать -5В.
Код, кому интересно:
PHP код:
int av_mode = 13; //Выход для нажатии кнопки
int back_on = 12; //вход сигнал включения задней скорости
int cam_status = 0; //Первоначально камера выключена
byte temp;
unsigned long time_low_cam = 0;
unsigned long time_high_cam = 0;
void setup()
{
pinMode(av_mode, OUTPUT);
pinMode(back_on, INPUT);
digitalWrite(back_on, HIGH);
digitalWrite(av_mode, LOW);
Serial.begin(115200);
}
//-----------------------------------------------
void loop()
{
cam();
}
//-----------------------------------------------
void cam()
{
temp=digitalRead(back_on);
if ( temp==LOW && digitalRead(av_mode)==LOW)
{
if ( time_high_cam == 0 )
{
time_high_cam = millis();
}
else
{
if ((millis()-time_high_cam)>2000)
{
//Serial.println("Hide");
digitalWrite(av_mode, HIGH);
time_low_cam = 0;
time_high_cam = 0;
}
}
}
if ( temp==HIGH && digitalRead(av_mode)==HIGH)
{
if ( time_low_cam == 0 )
{
time_low_cam = millis();
}
else
{
if ((millis()-time_low_cam)>7000)
{
//Serial.println("Low");
digitalWrite(av_mode, LOW);
time_low_cam = 0;
time_high_cam = 0;
}
}
}
if ( temp==LOW && digitalRead(av_mode)==HIGH)
{
//Это режи когда камера была включена, переход на D а потом снова R
//т.е. в этом режиме камера не должна выключатся
time_low_cam = 0;
time_high_cam = 0;
}
if ( temp==HIGH && digitalRead(av_mode)==LOW)
{
//Это режи когда камера НЕ была включена, переход на D а потом снова R
//т.е. в этом режиме камера не должна ВКЛЮЧАТСЯ
time_low_cam = 0;
time_high_cam = 0;
}
}
Последний раз редактировалось -= Nicki =-; 30.07.2010 в 10:41.
Эту тему просматривают: 4 (пользователей: 0 , гостей: 4)