Affichage des articles dont le libellé est bouton. Afficher tous les articles
Affichage des articles dont le libellé est bouton. Afficher tous les articles

lundi 18 février 2019

Arduino Episode 11 : Bouton Poussoir et 433






Branchements Emetteur:

NANO1 <-> Emetteur
GND --- GND
5V --- VCC
D10 -- DATA

NANO1 <-> Emetteur
D2 --- une PIN du bouton d'un côté
GND --- 'autre PIN du bouton du même côté

Branchements Recepteur:

NANO2 <-> 433 recepteur
GND --- GND
DATA --- D2 (pour l'interruption)
5V --- VCC


Code Emetteur:


#include
#include
RCSwitch mySwitch = RCSwitch();


void setup() {
  // Transmitter is connected to Arduino Pin #10 
  mySwitch.enableTransmit(10);
 
  pinMode(2, INPUT_PULLUP);
  pinMode(LED_BUILTIN, OUTPUT);
  attachInterrupt(0,balance,RISING);
}

void loop() {
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
  }


void balance()
{

  digitalWrite(LED_BUILTIN, HIGH);
  mySwitch.send(5396, 24);
  delay(1000); 
  digitalWrite(LED_BUILTIN, LOW);
  }

 

Code Recepteur : (identique à la bibliothèque RC-SWITCH)

/*
  Example for receiving
 
  https://github.com/sui77/rc-switch/
 
  If you want to visualize a telegram copy the raw data and
  paste it into http://test.sui.li/oszi/
*/

#include

RCSwitch mySwitch = RCSwitch();

void setup() {
  Serial.begin(9600);
  mySwitch.enableReceive(0);  // Receiver on interrupt 0 => that is pin #2
}

void loop() {
  if (mySwitch.available()) {
    output(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength(), mySwitch.getReceivedDelay(), mySwitch.getReceivedRawdata(),mySwitch.getReceivedProtocol());
    mySwitch.resetAvailable();
  }
}

jeudi 24 janvier 2019

Arduino Episode 10 : Bouton Poussoir

Arduino Épisode 10 : Bouton Poussoir
Quoi de plus simple qu'un bouton poussoir.Et bah non !
Pour des raisons de retour d’électricité et avoir un comportement cohérent avec ce que l'on veut, il faut utiliser une résistance, mais je n'en n'ai pas sous la main.
Il y a une fonction qui utilise une résistance intégré:
INPUT_PULL UP
seulement le résultat est inversé
retourne 1 si non appuyé et
retourne 0 si appuyé.
d'où le changement d'état par la ligne etatBouton = !etatBouton
(Voir le résultat dans la console Série en 9600 baud)

Branchements:

NANO <-> Bouton
GND --- une PIN du bouton d'un côté
D10 --- l'autre PIN du bouton du même côté


Code: 


int pinBouton;

void setup() {
  Serial.begin(9600);
  pinBouton = 10;
  pinMode(pinBouton, INPUT_PULLUP);
}

void loop() {
  boolean etatBouton = digitalRead(pinBouton);
  etatBouton = !etatBouton;
  Serial.println(etatBouton);
}

et pour allumer la LED interne :

void setup() {
  Serial.begin(9600);
  pinMode(10, INPUT_PULLUP);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  boolean etatBouton = digitalRead(10);
  etatBouton = !etatBouton;
  digitalWrite(LED_BUILTIN, etatBouton);
  Serial.println(etatBouton);
}