Arduino как второй мозг e-bike
- Войдите на сайт для отправки комментариев
доброе время суток ,
я новичок и только начинаю пробовать писать для arduino
прошу помощи для открытого проекта -
/* Arduino as a second brain e-bike*/
const int sensAlarmPin10=10; // sensor capasitive ,infrared , alarm+
const int sensAlarmPin11=11; // alarm sensor vibratie ,alarm A2+
const int sgnalPin4=4; // реле на динамик и фара max
const int buttonSignalPin5=5; // button signal alarm, liecht 100%+
const int swAlarmPin6=6; // вкл режим alarm
const int ledAlarmPin7=7; // индикация режима Alarm (мигание 1 сек)+
const int swPin8=8; // вкл controler infineon , magnit sw MK)+
const int swRemPin9=9; // sw rem ,stop signal NC +
const int ledPin14=14; // фара podsvetka
const int ledStopPin15=15; // STOP фара+
const int sensFPin16=16; // fotoelement
int value=0;
int buttonState;
int InfraredStatus;
int VibrationStatus;
int StopStatus;
int SignalStatus;
int lightLevel;
int AlarmStatus;
void setup()
{
/* initialize ( команда pinMode служит для настройки цифровых портов/контактов платы. в переменная ledPin, ...
конфигурируется как вход/выход OUTPUT/INPUT ) pin as an output:
pinMode(Pin , OUTPUT); //Вывод устанавливается как ВХОД
digitalWrite(Pin, HIGH ); // устанавливает HIGH (1)+5v/LOW(0), подкл подтягиваю-й резистор (как камутатор) нагрузка через 470 Ом\1кОм
digitalRead(Pin, HIGH); считывает значение с цифрового Вывода с результатом HIGH (1)/LOW(0),
analogRead (контакты 0-5) value=analogRead(pin);//переменная value=значению напряжения на INPUT/ U=5v шаг 0,0048v(0-1023)
аналоговые Выводы ненужно обьявлять как INPUT\OUTPUT */
pinMode(sgnalPin4, OUTPUT); //
pinMode(buttonSignalPin5, INPUT);
pinMode(swAlarmPin6, INPUT);
pinMode(ledAlarmPin7, OUTPUT); // индикация режима Alarm (мигание 1 сек)
pinMode(swPin8, INPUT); //
pinMode(swRemPin9, INPUT);
pinMode(sensAlarmPin10, INPUT);
pinMode(sensAlarmPin11, INPUT);
pinMode(ledPin14, OUTPUT); // фара ????
pinMode(ledStopPin15, OUTPUT); // STOP фара
pinMode(sensFPin16, INPUT);
}
void loop()
/* бесконечный цикл здесь присваиваются команды Цифровой ввод/вывод ,digitalRead/digitalWrite */
{
buttonState = digitalRead(swPin8); // magnit sw MK
InfraredStatus=digitalRead(sensAlarmPin10);//infrared 10pin
VibrationStatus=digitalRead(sensAlarmPin11);//vibrate 11pin
StopStatus=digitalRead(swRemPin9);//STOP фара
SignalStatus=digitalRead(buttonSignalPin5);
AlarmStatus=digitalRead(swAlarmPin6);//вкл режим alarm
lightLevel = analogRead(sensFPin16);
analogWrite(ledPin14, lightLevel);
if (StopStatus !=LOW) // кнопка тормоза вкл,загорается задний STOP
{
analogWrite(ledStopPin15, value=255);// STOP фара max
delay(500);//небольшая защита от "дребезга" контактов кнопки
}
else
{
analogWrite(ledStopPin15, value=0);// STOP фара max
}
if (SignalStatus != HIGH )
{
digitalWrite (sgnalPin4,LOW);
analogWrite(ledPin14, value=0);
}
else
{
digitalWrite (sgnalPin4,HIGH);
analogWrite(ledPin14, value=255);
delay(500);//небольшая защита от "дребезга" контактов кнопки
}
if ( buttonState != HIGH) // magnit sw MK
{
digitalWrite(ledAlarmPin7,HIGH);
delay(1000);
digitalWrite(ledAlarmPin7,LOW); // индикация режима Alarm (мигание 1 сек) Pin=7
delay(1000);
}
else
{
digitalWrite(ledAlarmPin7, LOW);
}
if (VibrationStatus == HIGH && InfraredStatus == HIGH )
{
digitalWrite (sgnalPin4,HIGH);
delay(10800000);// 60*60*3*1000
digitalWrite(sgnalPin4, LOW);
}
else
{
digitalWrite (sgnalPin4,LOW);
}
void manualTune()
{
lightLevel = map(lightLevel, 300, 800, 0, 255);/*настраивать в ручную Просто меняем 0, 1023 в страке ниже на что-то типа 300-800*/
lightLevel = constrain(lightLevel, 0, 255);
}
}
---------------------------------------------------------------------------------------
sketch_dec02a.ino: In function 'void loop()':
sketch_dec02a:124: error: a function-definition is not allowed here before '{' token
суть его в следующем
- двух уровневая сигнализация
1) уровень ,дистанционное предупреждение (детектор движения)
2) детектор вибрации вкл алярм .(вперспективе хотелосьбы реализовать идею с звонком на сотовый)
-скрытое вкл контролера - геркон или потайная кнопка
(вперспективе хотелосьбы реализовать идею с электронным ключём)
- звуковой сигнал
- автоматическое управление габаритным светом с помощью фоторезистора
- поворотные сигнальные огни
в выложенном скетче компилятор находит в конце ошибку с фигурной скопкой (121)
как мне ее разрешить ?
спасибо всем, кто проявит интерес к этой работе
у тебя скобка лишняя
если убираю скобки (221 224 )то получаю это
126 строку перенеси в 119
( код не проверял)
мельком глянул код -
110delay(10800000);это что? проц будет тупо в простое 10800 секунд ...
спасибо An25 ,
все скомпелировалось , завтра буду тестить :)
немного подправил скеч в итоге
кнопки стоп сигнала и фары работают
индикауия алярма мигает (081) при buttonState != HIGH( swPin8=8; // вкл controler infineon , magnit sw )
но два сенсора (092) почемуто включают алярм в противоположном режиме отключеного алярма( при buttonState == HIGH т.е. при включенном контролере infineon)
этот вариант для (092) не проходит
if ( ( buttonState != HIGH) && (VibrationStatus == HIGH && InfraredStatus == HIGH ))
}
подскажите ,что я делаю не так...
const int sensAlarmPin10=10; // sensor capasitive ,infrared , alarm - OK const int sensAlarmPin11=11; // alarm sensor vibratie ,alarm A2 -OK const int sgnalPin4=4; // реле на динамик и фара max - OK const int buttonSignalPin5=5; // button звуковой сигнал, фара 100% - OK const int AlarmPin6=6; // вкл режим alarm - const int ledAlarmPin7=7; // индикация режима Alarm (мигание 1 сек)-OK const int swPin8=8; // вкл controler infineon , magnit sw MK)- OK const int swRemPin9=9; // sw rem ,stop signal - OK const int ledPin14=14; // фара podsvetka - const int ledStopPin15=15; // STOP фара -OK const int sensFPin16=16; // fotoelement - int lightLevel, high = 0, low = 1023;// fotoelement int value=0; int buttonState;// вкл controler infineon , magnit sw MK) int InfraredStatus;// alarm sensor capasitive ,infrared int VibrationStatus; // alarm sensor vibratie ,alarm A2 int StopStatus; //STOP фара int SignalStatus;// button звуковой сигнал, фара 100% int AlarmStatus; void setup() { /* initialize ( команда pinMode служит для настройки цифровых портов/контактов платы. в переменная ledPin, ... конфигурируется как вход/выход OUTPUT/INPUT ) pin as an output: pinMode(Pin , OUTPUT); //Вывод устанавливается как ВХОД digitalWrite(Pin, HIGH ); // устанавливает HIGH (1)+5v/LOW(0), подкл подтягиваю-й резистор (как камутатор) нагрузка через 470 Ом\1кОм digitalRead(Pin, HIGH); считывает значение с цифрового Вывода с результатом HIGH (1)/LOW(0), analogRead (контакты 0-5) value=analogRead(pin);//переменная value=значению напряжения на INPUT/ U=5v шаг 0,0048v(0-1023) аналоговые Выводы ненужно обьявлять как INPUT\OUTPUT */ pinMode(sgnalPin4, OUTPUT); // реле на динамик и фара max pinMode(buttonSignalPin5, INPUT); // button звуковой сигнал, фара 100% pinMode(AlarmPin6, OUTPUT);// вкл алярм pinMode(ledAlarmPin7, OUTPUT); // индикация режима Alarm (мигание 1 сек) pinMode(swPin8, INPUT); // вкл controler infineon , magnit sw MK) pinMode(swRemPin9, INPUT); pinMode(sensAlarmPin10, INPUT); pinMode(sensAlarmPin11, INPUT); pinMode(ledPin14, OUTPUT); // фара ???? pinMode(ledStopPin15, OUTPUT); // STOP фара pinMode(sensFPin16, INPUT);// fotoelement } void loop() /* бесконечный цикл здесь присваиваются команды Цифровой ввод/вывод ,digitalRead/digitalWrite */ { buttonState = digitalRead(swPin8); // magnit sw MK InfraredStatus=digitalRead(sensAlarmPin10);//infrared 10pin VibrationStatus=digitalRead(sensAlarmPin11);//vibrate 11pin StopStatus=digitalRead(swRemPin9);//STOP фар SignalStatus=digitalRead(buttonSignalPin5); AlarmStatus=digitalRead(AlarmPin6);//вкл режим alarm lightLevel = analogRead(sensFPin16);//фоторезистор управление авто подсветкой габаритов analogWrite(ledPin14, lightLevel);// подсветка габариты if ( StopStatus !=LOW) // кнопка тормоза вкл,загорается задний STOP { analogWrite(ledStopPin15, value=255);// STOP фара max delay(200);//небольшая защита от "дребезга" контактов кнопки } else { analogWrite(ledStopPin15, value=0);// STOP фара max } if (SignalStatus != HIGH ) { digitalWrite (sgnalPin4,LOW); analogWrite(ledPin14, value=0); } else { digitalWrite (sgnalPin4,HIGH); analogWrite(ledPin14, value=255); //небольшая защита от "дребезга" контактов кнопки } if ( buttonState != HIGH) // magnit sw MK { digitalWrite(ledAlarmPin7,HIGH); delay(1000); digitalWrite(ledAlarmPin7,LOW); // индикация режима Alarm (мигание 1 сек) Pin=7 delay(1000); } else { digitalWrite(ledAlarmPin7, LOW); } if (VibrationStatus == HIGH && InfraredStatus == HIGH ) { digitalWrite(AlarmPin6,HIGH);// вкл.алярм delay(5000);// 5 sek } else { digitalWrite(AlarmPin6, LOW); } } void manualTune() { lightLevel = map(lightLevel, 300, 800, 0, 255);/*настраивать в ручную Просто меняем 0, 1023 в страке ниже на что-то типа 300-800*/ lightLevel = constrain(lightLevel, 0, 255); }