Отправка сигнала Arduino на другой Arduino
Я работаю над проектом, который состоит из двух разных функций. поскольку Arduino может выполнять только одну функцию, поэтому я решил вместо этого использовать две Arduino. Моя идея заключается в том, что 1-й Arduino выдаст выходные данные, а скетч на 2-м Arduino запустится только после ввода данных от 1-го Arduino. Итак, могу ли я сделать цифровой выход, который будет отправлен на вход второго Arduino?
если возможно, я уже написал код для второго Arduino, который будет запускаться после ввода данных от первого Arduino:
//определяем контакты ввода/вывода
#define FLOAT_SWITCH_PIN 2
#define PUMP_1_PIN 4
#define LED_PIN 7
#define output1starduino 3
//установка запускается один раз
void setup()
{
pinMode(FLOAT_SWITCH_PIN, INPUT_PULLUP);
pinMode(output1starduino, INPUT_PULLUP);
//настраиваем выходные контакты для реле/насосной станции и платы светодиодов
pinMode(PUMP_1_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
}
//loop() работает бесконечно
void loop()
{
if(digitalRead(output1starduino) == HIGH) // вывод с 1-го Arduino
if(digitalRead(FLOAT_SWITCH_PIN) == LOW)
{
digitalWrite(PUMP_1_PIN, HIGH); //включаем насос
digitalWrite(LED_PIN, HIGH); //включаем светодиод
}
{
digitalWrite(PUMP_1_PIN, LOW); //выключаем насос
digitalWrite(LED_PIN, LOW); //выключаем светодиод
}
}
Как я пишу в строке, «output1starduino» — это цифровой выход первого Arduino. Правильно ли мне написать, если я хочу, чтобы программа запускалась только сразу после вывода данных из 1-го Arduino?
*** это код первого Arduino, который будет отправлен на второй Arduino
int motorPin = 3; // motor pengisian (m1)
int blinkPin = 4; //
int motor1 = 5;// motor pembuangan
int motorklorin = 6;// pam topap
int switch1 = 2;// switch float
int indicator1 = 7;
int indicator2 = 8;
int indicator3 = 9;
int output1starduino = 2;
void setup()
{
pinMode(motorPin, OUTPUT);
pinMode(blinkPin, OUTPUT); // penujuk fasa pengisian
pinMode(motor1, OUTPUT);
pinMode(motorklorin, OUTPUT); // MOTOR UNTUK topap
pinMode(switch1, INPUT_PULLUP);// PELAMPONG
pinMode(indicator1, OUTPUT);// lampu penunjuk fasa pembuangan
pinMode(indicator2, OUTPUT);// lampu penunjuk topap
pinMode(indicator3, OUTPUT);// lampu menunggu
pinMode(output1starduino, OUTPUT); // KELUARAN KE ARDUINO 2
}
void loop()
{
digitalWrite(motorPin, HIGH); // turn on the motor
digitalWrite(blinkPin, HIGH); // turn on the LED
digitalWrite(motor1, HIGH);// on lampu
digitalWrite(motorklorin,HIGH);
delay(1000); //
digitalWrite(motorPin, HIGH); //
digitalWrite(blinkPin, HIGH); // penunjuk fasa pembuangan hidup
digitalWrite(motor1, LOW);// motor pembuangan jalan (air start turun/pembuangan
digitalWrite(motorklorin,HIGH);
delay(180000); //tempoh pembuangan
digitalWrite(motorPin, LOW); // turn on the motor (motorisi balik air jalan/pengisian
digitalWrite(blinkPin, LOW); //
digitalWrite(motor1, HIGH);// filling motor on
digitalWrite(indicator1, HIGH); //indicator
delay(150000); // duration filling
digitalWrite(motorPin, HIGH); // turn off the motor
digitalWrite(blinkPin,HIGH); // turn off the LED
digitalWrite(motor1, HIGH);//
digitalWrite(output1starduino, HIGH);
delay(100000); // multiply by 60000 to translate minutes to milliseconds
}
@Asrul Asyraff, 👍0
Обсуждение2 ответа
Arduino может быть не таким быстрым, как ПК или телефон, но он действительно ОЧЕНЬ быстрый (16 000 000 операций / сек). Если только код для arduino #1 не невероятно сложен, один arduino должен быть в состоянии сделать все это самостоятельно. P.S. Пожалуйста, выложите код для Arduino #1
Я только что отредактировал пост. Не стесняйтесь поставить галочку!, @Asrul Asyraff
Arduino легко справится с этим самостоятельно., @Rowan Radosav - McRae
Объедините их вот так: я переместил дубликаты пинов на другие пины
//определяем контакты ввода/вывода
#define FLOAT_SWITCH_PIN 2
#define PUMP_1_PIN 4
#define LED_PIN 7
#define output1starduino 3
byte motorPin = 11; // моторный пингвин (m1)
byte blinkPin = 12; //
byte motor1 = 5;// двигатель пембуанган
byte motorklorin = 6;//пам топап
byte switch1 = 2;//переключаем число с плавающей запятой
byte indicator1 = 13;
byte indicator2 = 8;
byte indicator3 = 9;
byte output1starduino = 10;
// установка запускается один раз
void setup()
{
pinMode(FLOAT_SWITCH_PIN, INPUT_PULLUP);
pinMode(output1starduino, INPUT_PULLUP);
//настраиваем выходные контакты для реле/насосной станции и платы светодиодов
pinMode(PUMP_1_PIN, OUTPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(motorPin, OUTPUT);
pinMode(blinkPin, OUTPUT); // индикатор фазы заряда
pinMode(motor1, OUTPUT);
pinMode(motorklorin, OUTPUT); // МОТОЦИКЛ ДЛЯ топап
pinMode(switch1, INPUT_PULLUP);// PULLUP
pinMode(indicator1, OUTPUT);//индикатор фазы разряда
pinMode(indicator2, OUTPUT);// индикатор топап
pinMode(indicator3, OUTPUT);// свет ожидания
pinMode(output1starduino, OUTPUT); // ВЫВОД НА ARDUINO 2
}
//цикл() работает бесконечно
void loop()
{
if(digitalRead(output1starduino) == HIGH) // вывод с 1-го Arduino
{
digitalWrite(motorPin, HIGH); // включаем мотоцикл
digitalWrite(blinkPin, HIGH); // включаем светодиод
digitalWrite(motor1, HIGH);// свет
digitalWrite(motorklorin,HIGH);
delay(1000); //
digitalWrite(motorPin, HIGH); //
digitalWrite(blinkPin, HIGH); // горит индикатор фазы разряда
digitalWrite(motor1, LOW);// мотор дренажа дороги (пуск воды вниз/слив
digitalWrite(motorklorin,HIGH);
delay(180000); //период изгнания
digitalWrite(motorPin, LOW); // включаем мотор (мотор для поворота воды, прокачки/налива
digitalWrite(blinkPin, LOW); //
digitalWrite(motor1, HIGH);//заполнение двигателя включено
digitalWrite(indicator1, HIGH); //индикатор
delay(150000); // заполнение длительности
digitalWrite(motorPin, HIGH); // выключаем мотор
digitalWrite(blinkPin,HIGH); // выключаем светодиод
digitalWrite(motor1, HIGH);//
digitalWrite(output1starduino, HIGH);
delay(100000); // умножаем на 60000, чтобы перевести минуты в миллисекунды
}
if(digitalRead(FLOAT_SWITCH_PIN) == LOW)
{
digitalWrite(PUMP_1_PIN, HIGH); //включаем насос
digitalWrite(LED_PIN, HIGH); //включаем светодиод
}
{
digitalWrite(PUMP_1_PIN, LOW); //выключаем насос
digitalWrite(LED_PIN, LOW); //выключаем светодиод
}
}
Дублирующиеся контакты могут потребовать дополнительной очистки., @CrossRoads
Почему отрицательный голос?, @CrossRoads
- Установите частоту ШИМ на 25 кГц.
- Какова частота PWM-выхода на Arduino
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Как устранить шум от вентилятора 12 В с ШИМ-управлением на низкой скорости
- Генерация частоты ШИМ выше 125 кГц с помощью Arduino Uno
- Увеличить разрядность PWM
- Как вывести истинное аналоговое напряжение на выходной контакт
- PWM-вывод Arduino Nano не функционирует
Один Arduino может выполнять множество функций. Мой запрашивает данные через Modbus, рассчитывает и устанавливает ШИМ, делает несколько http-запросов, обслуживает веб-страницы с SD-карты и запросы ajax, обрабатывает 4 реле, считывает датчик тока и датчики температуры, зажигает светодиоды, проверяет кнопку, рассчитывает потребление, пишет события в eeprom, журнал CSV и статистику потребления на карту SC... https://github.com/jandrassy/Regulator/tree/master/Regulator, @Juraj