Я хотел бы знать состояние переключателя

У меня есть Sim808 и Arduino UNO, и я хочу, чтобы они отправляли мне SMS-сообщения только при переключении переключателя из положения «вкл. выкл.» или «вкл.» в «выкл.». Но только при смене переключателя. Я новичок в этом и буду признателен за любую помощь. С уважением. Майк.

, 👍-1

Обсуждение

изучите примеры скетчей, включенные в среду разработки Arduino IDE... научитесь читать состояние переключателя... затем научитесь включать светодиод при нажатии переключателя... затем научитесь включать светодиод всякий раз, когда переключатель меняет состояние ... затем замените код светодиода кодом SMS, @jsotola


2 ответа


0

Если вы не используете переключатель без дребезга/шумов контактов, то лучше всего начать изучение с "устранения дребезга" кнопок/переключателей. Вы можете написать код для этого, например, в этом примере: 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.");
    }
  }
}
,

0
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);
  }
}

Это самый простой код для этого...

,