Объединение кода для нескольких датчиков в одной программе
Мне нужно одновременно управлять двумя разными датчиками (газа и температуры). Мне удалось запустить каждый из них по отдельности, и я не знаю, как манипулировать кодом, чтобы они могли работать вместе. Мой опыт в кодировании базовый, и я не тот, кто писал эти коды.
Вот эскизы:
Код термистора:
void setup() {
//Эта функция вызывается при запуске Arduino
Serial.begin(9600);
//Этот код настраивает последовательный порт на скорость 9600 бод
}
void loop() {
//Эта функция работает циклически, пока Arduino включено
int val; //Создаем целочисленную переменную
val=analogRead(0);
//Считать аналоговый порт 0 и сохранить значение в val
Serial.println(val);
//Вывод значения на последовательный порт
delay(1000);
//Подождите секунду, прежде чем мы сделаем это снова
}
Это код газового детектора:
/* Датчик газа MQ-2
Этот датчик обнаруживает горючие газы
плата имеет четыре контакта
подключите AO к выводу Arduino A0
подключите DO к выводу 2 Arduino
подключите Gnd к Arduino Gnd
подключите Vcc к Arduino 5 вольт
*/
int sensorPin = A0;
// выберите входной контакт для потенциометра
int DOPin = 2;
// выберите пин для светодиода
int sensorValue = 0;
// переменная для хранения значения, поступающего с датчика
int ledPin =13;
void setup() {
// объявляем ledPin как ВЫХОД:
pinMode(DOPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// считываем значение с датчика:
sensorValue = analogRead(sensorPin);
Serial.print("Analog Output = ");
Serial.println(sensorValue);
// включаем ledPin при срабатывании
if (digitalRead(DOPin) ==HIGH) {
digitalWrite(ledPin, LOW);
Serial.println("Digital Output = OFF");
} else {
digitalWrite(ledPin, HIGH);
Serial.println("Digital Output = ON");
}
delay(1000);
}
@SHR, 👍2
1 ответ
▲ 5
Вам просто нужно назначить датчикам разные контакты.
/* Датчик газа MQ-2
Этот датчик обнаруживает горючие газы
плата имеет четыре контакта
подключите AO к выводу Arduino A0
подключите DO к выводу 2 Arduino
подключите Gnd к Arduino Gnd
подключите Vcc к Arduino 5 вольт
*/
int gasSensorPin= A0; // Контакт датчика ГАЗА
int DOpin= 2; // выбор контакта для светодиода
int gasSensorValue= 0; // переменная для хранения значения, поступающего от датчика
int ledPin = 13;
int tempSensorPin = A1; //Контакт датчика температуры
int tempSensorValue;
void setup() {
// объявляем ledPin как ВЫХОД:
pinMode(DOPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// считываем значение с датчика:
gasSensorValue= analogRead(gasSensorPin);
Serial.print("Analog Output = ");
Serial.println(gasSensorValue);
// включаем ledPin при срабатывании
//
if (digitalRead(DOpin) == HIGH){
digitalWrite(ledPin, LOW);
Serial.println("Digital Output = OFF");
}
else {
digitalWrite(ledPin, HIGH);
Serial.println("Digital Output = ON");
}
Serial.print("Temperture: ");
tempSensorValue = analogRead(tempSensorPin));
Serial.println(tempSensorPin); //Вывести значение пина A4
delay(1000);
}
Это ваш объединенный эскиз.
,
@Vasil Kalchev
Смотрите также:
- Программа arduino выдаёт ошибку expected //primary-expression before ')' token error: //expected ';' before '}' token E
- (Код ультразвукового датчика: такого файла или каталога нет)
- Несколько неблокирующих таймеров обратного отсчета?
- Датчик HC-SR505 PIR выдает только HIGH уровень
- Отправка данных из ESP8266 в PHP
- Определение уровня заряда с помощью датчика тока (ACS758) с arduino uno
- Использование YS-IRTM с Arduino Uno
- hx711 и датчик нагрузки показывают 0 для калибровки