Я хотел бы знать состояние переключателя
У меня есть Sim808 и Arduino UNO, и я хочу, чтобы они отправляли мне SMS-сообщения только при переключении переключателя из положения «вкл. выкл.» или «вкл.» в «выкл.». Но только при смене переключателя. Я новичок в этом и буду признателен за любую помощь. С уважением. Майк.
@Mike Sammut, 👍-1
Обсуждение2 ответа
Если вы не используете переключатель без дребезга/шумов контактов, то лучше всего начать изучение с "устранения дребезга" кнопок/переключателей. Вы можете написать код для этого, например, в этом примере: debounce arduino.cc.
Если вы не хотите заново изобретать велосипед, вы можете использовать существующую библиотеку, например: Bounce2 github.com.
Вот схема, показывающая, как легко это сделать с помощью библиотеки Bounce2.
#include <Bounce2.h>
const byte buttonPin = 2;
Bounce bouncer = Bounce();
void setup(){
Serial.begin(9600);
pinMode(buttonPin, INPUT_PULLUP);
bouncer.attach(buttonPin);
bouncer.interval(50);
}
void loop(){
if(bouncer.update()){
if(bouncer.fell()){
Serial.println("Button Pressed.");
}
if(bouncer.rose()){
Serial.println("Button Released.");
}
}
}
int btnPin = 2;
int state;
void setup(){
Serial.begin(9600);
pinMode(btnPin,INPUT);
state = digitalRead(btnPin);
}
void loop(){
if(state!=digitalRead(btnPin)){
state = digitalRead(btnPin);
Serial.print("State Changed to ");
Serial.println(state);
}
}
Это самый простой код для этого...
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
изучите примеры скетчей, включенные в среду разработки Arduino IDE... научитесь читать состояние переключателя... затем научитесь включать светодиод при нажатии переключателя... затем научитесь включать светодиод всякий раз, когда переключатель меняет состояние ... затем замените код светодиода кодом SMS, @jsotola