Arduino как второй мозг e-bike
- Войдите на сайт для отправки комментариев
доброе время суток ,
я новичок и только начинаю пробовать писать для arduino
прошу помощи для открытого проекта -
001 | /* Arduino as a second brain e-bike*/ |
002 |
003 | const int sensAlarmPin10=10; // sensor capasitive ,infrared , alarm+ |
004 | const int sensAlarmPin11=11; // alarm sensor vibratie ,alarm A2+ |
005 | const int sgnalPin4=4; // реле на динамик и фара max |
006 | const int buttonSignalPin5=5; // button signal alarm, liecht 100%+ |
007 | const int swAlarmPin6=6; // вкл режим alarm |
008 | const int ledAlarmPin7=7; // индикация режима Alarm (мигание 1 сек)+ |
009 | const int swPin8=8; // вкл controler infineon , magnit sw MK)+ |
010 | const int swRemPin9=9; // sw rem ,stop signal NC + |
011 | const int ledPin14=14; // фара podsvetka |
012 | const int ledStopPin15=15; // STOP фара+ |
013 | const int sensFPin16=16; // fotoelement |
014 |
015 | int value=0; |
016 |
017 | int buttonState; |
018 | int InfraredStatus; |
019 | int VibrationStatus; |
020 | int StopStatus; |
021 | int SignalStatus; |
022 | int lightLevel; |
023 | int AlarmStatus; |
024 |
025 | void setup () |
026 | { |
027 | /* initialize ( команда pinMode служит для настройки цифровых портов/контактов платы. в переменная ledPin, ... |
028 | конфигурируется как вход/выход OUTPUT/INPUT ) pin as an output: |
029 | pinMode(Pin , OUTPUT); //Вывод устанавливается как ВХОД |
030 | digitalWrite(Pin, HIGH ); // устанавливает HIGH (1)+5v/LOW(0), подкл подтягиваю-й резистор (как камутатор) нагрузка через 470 Ом\1кОм |
031 | digitalRead(Pin, HIGH); считывает значение с цифрового Вывода с результатом HIGH (1)/LOW(0), |
032 | analogRead (контакты 0-5) value=analogRead(pin);//переменная value=значению напряжения на INPUT/ U=5v шаг 0,0048v(0-1023) |
033 | аналоговые Выводы ненужно обьявлять как INPUT\OUTPUT */ |
034 | |
035 | |
036 | |
037 |
038 | |
039 | pinMode(sgnalPin4, OUTPUT); // |
040 | pinMode(buttonSignalPin5, INPUT); |
041 | pinMode(swAlarmPin6, INPUT); |
042 | pinMode(ledAlarmPin7, OUTPUT); // индикация режима Alarm (мигание 1 сек) |
043 | pinMode(swPin8, INPUT); // |
044 | pinMode(swRemPin9, INPUT); |
045 | pinMode(sensAlarmPin10, INPUT); |
046 | pinMode(sensAlarmPin11, INPUT); |
047 |
048 | pinMode(ledPin14, OUTPUT); // фара ???? |
049 | pinMode(ledStopPin15, OUTPUT); // STOP фара |
050 | pinMode(sensFPin16, INPUT); |
051 | |
052 | } |
053 |
054 | void loop () |
055 | /* бесконечный цикл здесь присваиваются команды Цифровой ввод/вывод ,digitalRead/digitalWrite */ |
056 | { |
057 |
058 | buttonState = digitalRead(swPin8); // magnit sw MK |
059 |
060 | InfraredStatus=digitalRead(sensAlarmPin10); //infrared 10pin |
061 |
062 | VibrationStatus=digitalRead(sensAlarmPin11); //vibrate 11pin |
063 |
064 | StopStatus=digitalRead(swRemPin9); //STOP фара |
065 |
066 | SignalStatus=digitalRead(buttonSignalPin5); |
067 | AlarmStatus=digitalRead(swAlarmPin6); //вкл режим alarm |
068 | lightLevel = analogRead(sensFPin16); |
069 | analogWrite(ledPin14, lightLevel); |
070 |
071 | if (StopStatus !=LOW) // кнопка тормоза вкл,загорается задний STOP |
072 | { |
073 | analogWrite(ledStopPin15, value=255); // STOP фара max |
074 | delay(500); //небольшая защита от "дребезга" контактов кнопки |
075 | } |
076 | else |
077 | { |
078 | analogWrite(ledStopPin15, value=0); // STOP фара max |
079 | } |
080 | if (SignalStatus != HIGH ) |
081 | { |
082 | digitalWrite (sgnalPin4,LOW); |
083 | analogWrite(ledPin14, value=0); |
084 | } |
085 | else |
086 | { |
087 | digitalWrite (sgnalPin4,HIGH); |
088 | analogWrite(ledPin14, value=255); |
089 | delay(500); //небольшая защита от "дребезга" контактов кнопки |
090 | } |
091 | |
092 | |
093 | |
094 | if ( buttonState != HIGH) // magnit sw MK |
095 | { |
096 | digitalWrite(ledAlarmPin7,HIGH); |
097 | delay(1000); |
098 | digitalWrite(ledAlarmPin7,LOW); // индикация режима Alarm (мигание 1 сек) Pin=7 |
099 | delay(1000); |
100 |
101 | } |
102 | else |
103 | { |
104 | digitalWrite(ledAlarmPin7, LOW); |
105 | } |
106 |
107 | if (VibrationStatus == HIGH && InfraredStatus == HIGH ) |
108 | { |
109 | digitalWrite (sgnalPin4,HIGH); |
110 | delay(10800000); // 60*60*3*1000 |
111 | digitalWrite(sgnalPin4, LOW); |
112 |
113 | } |
114 |
115 | else |
116 | { |
117 | digitalWrite (sgnalPin4,LOW); |
118 | } |
119 |
120 | void manualTune() |
121 | { |
122 | lightLevel = map(lightLevel, 300, 800, 0, 255); /*настраивать в ручную Просто меняем 0, 1023 в страке ниже на что-то типа 300-800*/ |
123 | lightLevel = constrain(lightLevel, 0, 255); |
124 | } |
125 |
126 | } |
127 | |
128 | --------------------------------------------------------------------------------------- |
129 | sketch_dec02a.ino: In function 'void loop()' : |
130 | sketch_dec02a:124: error: a function-definition is not allowed here before '{' token |
суть его в следующем
- двух уровневая сигнализация
1) уровень ,дистанционное предупреждение (детектор движения)
2) детектор вибрации вкл алярм .(вперспективе хотелосьбы реализовать идею с звонком на сотовый)
-скрытое вкл контролера - геркон или потайная кнопка
(вперспективе хотелосьбы реализовать идею с электронным ключём)
- звуковой сигнал
- автоматическое управление габаритным светом с помощью фоторезистора
- поворотные сигнальные огни
в выложенном скетче компилятор находит в конце ошибку с фигурной скопкой (121)
как мне ее разрешить ?
спасибо всем, кто проявит интерес к этой работе
у тебя скобка лишняя
если убираю скобки (221 224 )то получаю это
126 строку перенеси в 119
( код не проверял)
мельком глянул код -
110
delay(10800000);
это что? проц будет тупо в простое 10800 секунд ...
спасибо An25 ,
все скомпелировалось , завтра буду тестить :)
немного подправил скеч в итоге
кнопки стоп сигнала и фары работают
индикауия алярма мигает (081) при buttonState != HIGH( swPin8=8; // вкл controler infineon , magnit sw )
но два сенсора (092) почемуто включают алярм в противоположном режиме отключеного алярма( при buttonState == HIGH т.е. при включенном контролере infineon)
этот вариант для (092) не проходит
if ( ( buttonState != HIGH) && (VibrationStatus == HIGH && InfraredStatus == HIGH ))
1
}
подскажите ,что я делаю не так...
001
const
int
sensAlarmPin10=10;
// sensor capasitive ,infrared , alarm - OK
002
const
int
sensAlarmPin11=11;
// alarm sensor vibratie ,alarm A2 -OK
003
const
int
sgnalPin4=4;
// реле на динамик и фара max - OK
004
const
int
buttonSignalPin5=5;
// button звуковой сигнал, фара 100% - OK
005
const
int
AlarmPin6=6;
// вкл режим alarm -
006
const
int
ledAlarmPin7=7;
// индикация режима Alarm (мигание 1 сек)-OK
007
const
int
swPin8=8;
// вкл controler infineon , magnit sw MK)- OK
008
const
int
swRemPin9=9;
// sw rem ,stop signal - OK
009
const
int
ledPin14=14;
// фара podsvetka -
010
const
int
ledStopPin15=15;
// STOP фара -OK
011
const
int
sensFPin16=16;
// fotoelement -
012
013
int
lightLevel, high = 0, low = 1023;
// fotoelement
014
int
value=0;
015
int
buttonState;
// вкл controler infineon , magnit sw MK)
016
int
InfraredStatus;
// alarm sensor capasitive ,infrared
017
int
VibrationStatus;
// alarm sensor vibratie ,alarm A2
018
int
StopStatus;
//STOP фара
019
int
SignalStatus;
// button звуковой сигнал, фара 100%
020
int
AlarmStatus;
021
022
void
setup
()
023
{
024
025
/* initialize ( команда pinMode служит для настройки цифровых портов/контактов платы. в переменная ledPin, ...
026
конфигурируется как вход/выход OUTPUT/INPUT ) pin as an output:
027
pinMode(Pin , OUTPUT); //Вывод устанавливается как ВХОД
028
digitalWrite(Pin, HIGH ); // устанавливает HIGH (1)+5v/LOW(0), подкл подтягиваю-й резистор (как камутатор) нагрузка через 470 Ом\1кОм
029
digitalRead(Pin, HIGH); считывает значение с цифрового Вывода с результатом HIGH (1)/LOW(0),
030
analogRead (контакты 0-5) value=analogRead(pin);//переменная value=значению напряжения на INPUT/ U=5v шаг 0,0048v(0-1023)
031
аналоговые Выводы ненужно обьявлять как INPUT\OUTPUT */
032
033
pinMode(sgnalPin4, OUTPUT);
// реле на динамик и фара max
034
pinMode(buttonSignalPin5, INPUT);
// button звуковой сигнал, фара 100%
035
pinMode(AlarmPin6, OUTPUT);
// вкл алярм
036
pinMode(ledAlarmPin7, OUTPUT);
// индикация режима Alarm (мигание 1 сек)
037
pinMode(swPin8, INPUT);
// вкл controler infineon , magnit sw MK)
038
pinMode(swRemPin9, INPUT);
039
pinMode(sensAlarmPin10, INPUT);
040
pinMode(sensAlarmPin11, INPUT);
041
042
pinMode(ledPin14, OUTPUT);
// фара ????
043
pinMode(ledStopPin15, OUTPUT);
// STOP фара
044
pinMode(sensFPin16, INPUT);
// fotoelement
045
}
046
void
loop
()
047
/* бесконечный цикл здесь присваиваются команды Цифровой ввод/вывод ,digitalRead/digitalWrite */
048
{
049
buttonState = digitalRead(swPin8);
// magnit sw MK
050
051
InfraredStatus=digitalRead(sensAlarmPin10);
//infrared 10pin
052
053
VibrationStatus=digitalRead(sensAlarmPin11);
//vibrate 11pin
054
055
StopStatus=digitalRead(swRemPin9);
//STOP фар
056
SignalStatus=digitalRead(buttonSignalPin5);
057
AlarmStatus=digitalRead(AlarmPin6);
//вкл режим alarm
058
lightLevel = analogRead(sensFPin16);
//фоторезистор управление авто подсветкой габаритов
059
analogWrite(ledPin14, lightLevel);
// подсветка габариты
060
061
if
( StopStatus !=LOW)
// кнопка тормоза вкл,загорается задний STOP
062
{
063
analogWrite(ledStopPin15, value=255);
// STOP фара max
064
delay(200);
//небольшая защита от "дребезга" контактов кнопки
065
}
066
else
067
{
068
analogWrite(ledStopPin15, value=0);
// STOP фара max
069
}
070
if
(SignalStatus != HIGH )
071
{
072
digitalWrite (sgnalPin4,LOW);
073
analogWrite(ledPin14, value=0);
074
}
075
else
076
{
077
digitalWrite (sgnalPin4,HIGH);
078
analogWrite(ledPin14, value=255);
079
//небольшая защита от "дребезга" контактов кнопки
080
}
081
if
( buttonState != HIGH)
// magnit sw MK
082
{
083
digitalWrite(ledAlarmPin7,HIGH);
084
delay(1000);
085
digitalWrite(ledAlarmPin7,LOW);
// индикация режима Alarm (мигание 1 сек) Pin=7
086
delay(1000);
087
}
088
else
089
{
090
digitalWrite(ledAlarmPin7, LOW);
091
}
092
if
(VibrationStatus == HIGH && InfraredStatus == HIGH )
093
{
094
digitalWrite(AlarmPin6,HIGH);
// вкл.алярм
095
delay(5000);
// 5 sek
096
}
097
else
098
{
099
digitalWrite(AlarmPin6, LOW);
100
}
101
}
102
void
manualTune()
103
{
104
lightLevel = map(lightLevel, 300, 800, 0, 255);
/*настраивать в ручную Просто меняем 0, 1023 в страке ниже на что-то типа 300-800*/
105
lightLevel = constrain(lightLevel, 0, 255);
106
}
107
108