Étape 3: Programmer !
Voici le programme que j’ai écrit. Il envoie un volume signal chaque fois que le bouton est tourné vers le haut, un volume vers le bas lorsque le bouton est tourné vers le bas, un volume faible signal tant que le bouton volume faible toutes les quelques millisecondes est pressé et s’allume le témoin quand il envoie des signaux.
Je suis encore un débutant à la programmation arduino, donc aucune amélioration serait sympa.
N’oubliez pas de changer les codes selon les codes de votre télécommande !
Voici un fichier arduino et un fichier .txt que vous pouvez copier et coller.
CODE (il est préférable de pas copier à partir de là, copie de .txt ou télécharger le code de l’arduino au lieu de cela) :
#include < IRremote.h >
#include < IRremoteInt.h >
activer le signal IR envoi capacité (fonctionne uniquement sur la broche numérique 3!!!)
IRsend irsend ;
Ces broches peuvent être modifiés si vous le souhaitez
broche du centre du potentiomètre
int potpin = 3 ;
int val = 0 ;
old_val int = 0 ;
int niveau = 0 ;
int old_level = 0 ;
broche de volume vers le bas du bouton poussoir
int downVolpin = 4 ;
int downVolVal = 0 ;
conduit à indiquer les changements de volume (pour le débogage), vous pouvez modifier NIP
int indicatorLED = 2 ;
volume jusqu'à 490
volume bas c90
void setup()
{
Serial.Begin(9600) ;
pinMode (downVolpin, entrée) ;
pinMode (indicatorLED, sortie) ;
}
void loop() {}
downVolVal = digitalRead(downVolpin) ; État du bouton volume faible
Val = analogRead(potpin) ; valeur analogique du pot, entre 0-1023
Level = carte (val, 0, 1023, 0, 100) ; modifie les valeurs de 0-1023 à 0-100
Delay(10) ;
Si (downVolVal == HIGH) {/ / si bas volume touche
digitalWrite (indicatorLED, HIGH) ;
pour (int i = 0; i < 3; i ++) {}
irsend.sendSony (0xc90, 12) ; Sony TV bas volume (changement de votre appareil)
Delay(100) ;
}
}
ElseIf (niveau > old_level) {//if bouton est tourné vers le haut
digitalWrite (indicatorLED, HIGH) ;
pour (int i = 0; i < 3; i ++) {}
irsend.sendSony (0x490, 12) ; Sony TV volume (changement de votre appareil)
Delay(100) ;
}
}
ElseIf (niveau < old_level) {//if bouton est tourné vers le bas
digitalWrite (indicatorLED, HIGH) ;
pour (int i = 0; i < 3; i ++) {}
irsend.sendSony (0xc90, 12) ; Sony TV bas volume (changement de votre appareil)
Delay(100) ;
}
} else {//if aucune des mesures se fait
digitalWrite (indicatorLED, basse) ;
}
old_val = val ; la valeur est maintenant vieux
old_level = niveau ; la valeur mappée est maintenant vieux
}