Можете ли вы помочь мне объединить эти скетчи датчиков в один в Arduino?
Я хочу объединить эти три скетча в один.
ДАТЧИК ДОЖДЯ:
int rainPin = A0;
int greenLED = 6;
int redLED = 7;
// вы можете настроить пороговое значение
int thresholdValue = 500;
void setup(){
pinMode(rainPin, INPUT);
pinMode(greenLED, OUTPUT);
pinMode(redLED, OUTPUT);
digitalWrite(greenLED, LOW);
digitalWrite(redLED, LOW);
Serial.begin(9600);
}
void loop() {
// читаем входной сигнал на аналоговом выводе 0:
int sensorValue = analogRead(rainPin);
Serial.print(sensorValue);
if(sensorValue < thresholdValue){
Serial.println(" - It's wet");
digitalWrite(greenLED, LOW);
digitalWrite(redLED, HIGH);
}
else {
Serial.println(" - It's dry");
digitalWrite(greenLED, HIGH);
digitalWrite(redLED, LOW);
}
delay(500);
}
ДАТЧИК СВЕТА:
int ldrPin = A0;
int greenLED = 6;
int redLED = 7;
// вы можете настроить пороговое значение
int thresholdValue = 500;
void setup(){
pinMode(ldrPin, INPUT);
pinMode(greenLED, OUTPUT);
pinMode(redLED, OUTPUT);
digitalWrite(greenLED, LOW);
digitalWrite(redLED, LOW);
Serial.begin(9600);
}
void loop() {
// читаем входной сигнал на аналоговом выводе 0:
int sensorValue = analogRead(ldrPin);
Serial.print(sensorValue);
if(sensorValue < thresholdValue){
Serial.println(" - light");
digitalWrite(greenLED, LOW);
digitalWrite(redLED, HIGH);
}
else {
Serial.println(" - dark");
digitalWrite(greenLED, HIGH);
digitalWrite(redLED, LOW);
}
delay(500);
}
ДАТЧИК ДЫМА:
int smokeD0 = A5;
int greenLed = 11;
int redLed = 12;
// Ваше пороговое значение
int sensorThres = 300;
void setup() {
pinMode(smokeD0, INPUT);
pinMode(greenLed, OUTPUT);
pinMode(redLed, OUTPUT);
digitalWrite(greenLed, LOW);
digitalWrite(redLed, LOW);
Serial.begin(9600);
}
void loop() {
int analogSensor = analogRead(smokeD0);
Serial.println(analogSensor);
// Проверяем, достигло ли порогового значения
if (analogSensor < sensorThres)
{
Serial.println(" - Smoke");
digitalWrite(redLed, LOW);
digitalWrite(greenLed, HIGH);
}
else
{
Serial.println(" - No Smoke");
digitalWrite(redLed, HIGH);
digitalWrite(greenLed, LOW);
}
delay(100);
}
Я хочу объединить эти коды в один только с двумя выходами:
зеленый светодиод
и;redLED
.
@R E, 👍1
Обсуждение1 ответ
Лучший ответ:
Переименование переменных
Переименуйте
thresholdValue
в первых двух скетчах вrainSensorThreshold
иlightSensorThreshold
соответственно иsensorThres
вsmokeSensorThreshold
в третьем скетче.Переименуйте
sensorValue
в первых двух скетчах вrainSensorValue
иlightSensorValue
соответственно иanalogSensor
вsmokeSensorValue
в третьем скетче.
Изменить аналоговый контакт
Используйте A1
(или другой аналоговый вход, отличный от A0
или A5
) для ldrPin
во втором скетч, например:
int ldrPin = A0;
Постоянные светодиодные контакты
В третьем скетче используйте те же контакты, что и в первых двух скетчах, для двух светодиодов и. Обратите внимание на изменение регистра:
int greenLed = 11;
int redLed = 12;
в
int greenLED = 6;
int redLED = 7;
Перекомпилируйте каждый скетч
Чтобы убедиться, что каждый скетч по-прежнему работает, перекомпилируйте каждый из них отдельно.
Объедините код
Наконец... Соедините код соответствующим образом, сохраняя три части отдельными:
- Глобальные переменные
setup()
цикл()
У меня проблема с этим --- int SensorValue = AnalogRead(rainPin);, @R E
Ах, я это пропустил. Я обновил свой ответ., @Greenonline
Не забудьте проголосовать за :-), @Greenonline
- Какова работа pulseIn?
- Сколько датчиков может поддерживать один модуль Arduino?
- Получение BPM из данного кода
- Как подключить более 10 датчиков к Arduino uno r3
- Как использовать два ультразвуковых датчика для управления двигателем 5 Вольт?
- Чтение датчика давления от 4 до 20 мА с использованием uno
- Что выбрать между датчиками температуры и влажности: AM230x или DHT22?
- SRF04 Ультразвуковой датчик - неточные показания
Какая у вас проблема с их объединением? Вы не задали актуальный вопрос, @chrisl
Единственная проблема — одинаковые имена для «sensorValue», «thresholdValue» и одинаковые контакты для красного и зеленого светодиода, а также аналоговый контакт A0. Все в первых двух фрагментах., @KIIV