Почему на ардуино реле моргает зеленным и не может включиться? Подключил: +5В от БП, минус общий с ардуино и Реле, на управление контакт Д4 пробовал и А0
Почему на ардуино реле моргает зеленным и не может включиться? Подключил: +5В от БП, минус общий с ардуино и Реле, на управление контакт Д4 пробовал и А0
Комментарии: 12
Imya
Может тока не хватает, попробуй управление через транзистор с пина сделать или оптопару, ещё программу покажи
Bekzat
БП на 10А
Imya
Тока пина ардуинки
Bekzat
Транзистор с чего снят можно? По идее реле для ардуино
Imya
Вариантов много с чего, фото реле, как подключаешь и программу скинь,
Bekzat
Код ?
SoftwareSerial SIM900(7, 8); // RX, TX
const int powerPin = 9;
const int relayPin = 4;
void setup() {
pinMode(powerPin, OUTPUT);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, LOW);
// Power on the SIM900 module
SIM900power();
// Turn off relay for 3 seconds at the start
pinMode(relayPin, INPUT); // Turn off relay
delay(3000);
SIM900.begin(9600); // Start the software serial communication with SIM900 at 9600 baud rate
}
void loop() {
if (SIM900.available()) {
if (SIM900.readString().indexOf(" ") > 0) {
answerCall();
}
}
}
void SIM900power() {
digitalWrite(powerPin, LOW);
delay(1000);
digitalWrite(powerPin, HIGH);
delay(2000);
digitalWrite(powerPin, LOW);
delay(3000);
}
void answerCall() {
SIM900.println("ATA"); // Answer the call
delay(1000);
pinMode(relayPin, OUTPUT); // Turn on relay
while (SIM900.readString().indexOf("NO CARRIER") == -1) {
// Wait for the call to end
}
pinMode(relayPin, INPUT); // Turn off relay
}
Ensem
Может реле на 12 вольт?
Bekzat
5В Я сам его включал от 5В Он в начале с другим кодом включался Только сразу после подачи напряжения А сейчас дергается но не может
Ensem
А оно не pnp что-ли? Не плюсом управляется?
Bekzat
Нет нулем почему-то Собирал на ардуино нано
Wpe
странновато выглядит я не понимаю зачем relayPin переназначать с типа OUTPUT на INPUT // Turn off relay for 3 seconds at the start digitalWrite(relayPin, LOW); // Turn off relay delay(3000); void answerCall() { SIM900.println("ATA"); // Answer the call delay(1000); digitalWrite(relayPin, HIGH); // Turn on relay while (SIM900.readString().indexOf("NO CARRIER") == -1) { // Wait for the call to end } digitalWrite(relayPin, LOW); // Turn off relay } вот в этих трех кусках попробуй заменить в другом коде там в void видимо прописано было реле с HIGH ставить, а потом выключать через 3 сек
Bekzat
Он сначала включался со старата Без команды Потом чтобы он начальное положение выкл принял прописал чтобы он выключил его