Можете ли вы помочь мне объединить эти скетчи датчиков в один в 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 из данного кода
- Датчик Arduino Uno DHT11 Не удалось прочитать данные с датчика DHT
- Как подключить более 10 датчиков к Arduino uno r3
- Чтение датчика давления от 4 до 20 мА с использованием uno
- Как использовать два ультразвуковых датчика для управления двигателем 5 Вольт?
Какая у вас проблема с их объединением? Вы не задали актуальный вопрос, @chrisl
Единственная проблема — одинаковые имена для «sensorValue», «thresholdValue» и одинаковые контакты для красного и зеленого светодиода, а также аналоговый контакт A0. Все в первых двух фрагментах., @KIIV