Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
arduino [2015/08/03 00:48] – antonlanghoff | arduino [2019/05/22 18:08] (Version actuelle) – [Le code de pwmsimple] antonlanghoff | ||
---|---|---|---|
Ligne 18: | Ligne 18: | ||
Et naturellement l’excellent wiki de WhiteCat avec qui j'ai fait mes premiers pas avec l' | Et naturellement l’excellent wiki de WhiteCat avec qui j'ai fait mes premiers pas avec l' | ||
- | http:// | + | [[http:// |
==== Les entrés sorties de l' | ==== Les entrés sorties de l' | ||
Chaque carte Arduino à un nombre définit d' | Chaque carte Arduino à un nombre définit d' | ||
=== Les entrées === | === Les entrées === | ||
- | Dans Héphaistos, les entrées peuvent être de trois type. | + | Dans Hephaestos, les entrées peuvent être de trois type. |
- Analogique: permet de lire un potentiomètre ou un capteur. Elle renvoie une valeur entre 0 et 1023. | - Analogique: permet de lire un potentiomètre ou un capteur. Elle renvoie une valeur entre 0 et 1023. | ||
- Numérique: permet de lire l' | - Numérique: permet de lire l' | ||
Ligne 47: | Ligne 47: | ||
L'on trouve des librairies pour la plupart des fonctions, allant de la communication en dmx, controle des moteurs, hack de l' | L'on trouve des librairies pour la plupart des fonctions, allant de la communication en dmx, controle des moteurs, hack de l' | ||
- | === installer la librairie | + | === installer la librairie |
Après plusieurs approche dans le suivit du développement de whitecat (du sketch par défault à réécrire, allant d'un module sans ligne de code permettant de configurer et contrôler l' | Après plusieurs approche dans le suivit du développement de whitecat (du sketch par défault à réécrire, allant d'un module sans ligne de code permettant de configurer et contrôler l' | ||
- | j'ai finalement choisis l' | + | j'ai finalement choisis l' |
- | Vous la trouverez dans le dossier /ressources du repertoire d'Héphaïstos. | + | Vous la trouverez dans le dossier /ressources du repertoire d'Hephaestos. |
Pour installer la libraire dezipper simplement le dossier dans le répertoire /libraries de votre IDE (programme) arduino ou directement depuis l'IDE dans l' | Pour installer la libraire dezipper simplement le dossier dans le répertoire /libraries de votre IDE (programme) arduino ou directement depuis l'IDE dans l' | ||
- | Au prochain démarrage du logiciel arduino vous devrez trouver dans l' | + | Au prochain démarrage du logiciel arduino vous devrez trouver dans l' |
- | ==== Le code ==== | + | === Les principales fonction de la librairie HephaestosArduinoLib === |
+ | * HEPHAESTOS heph = HEPHAESTOS(); | ||
+ | Chaque fonction de la librairie font être appelé avec cet objet heph (ex: | ||
+ | * void begin(Stream & | ||
+ | * void setSerial(Stream & | ||
+ | * void checkSerial() doit être appeler régulièrement. Vérifie la communication série et traite les données. | ||
+ | * byte HEPHAESTOS:: | ||
+ | * void setToHephaestos(byte buffer[], int buffersize) permet d' | ||
+ | |||
+ | ==== Le code de pwmsimple | ||
+ | Le code d' | ||
+ | |||
+ | La partie du texte grisé précéder de < | ||
+ | |||
+ | <code c++> | ||
+ | #include < | ||
+ | |||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | |||
+ | HEPHAESTOS heph = HEPHAESTOS(); | ||
+ | |||
+ | //////////////// | ||
+ | const int BAUDRATE=9600; | ||
+ | // | ||
+ | const int NBR_IN=6; | ||
+ | int input[NBR_IN]={A0, | ||
+ | boolean is_pullup[NBR_IN]={false, | ||
+ | boolean is_analog_in[NBR_IN]={true, | ||
+ | |||
+ | /// | ||
+ | const int NBR_OUT=12; //Nombre de patte en sorties | ||
+ | int output[NBR_OUT]={2, | ||
+ | boolean is_PWM[NBR_OUT]={true, | ||
+ | |||
+ | /////////////////// | ||
+ | |||
+ | |||
+ | ///////////////////// | ||
+ | int threshold_analog=0; | ||
+ | int sensorMin = 1023; // minimum sensor value | ||
+ | int sensorMax = 0; // maximum sensor value | ||
+ | |||
+ | byte buffer_digital[NBR_IN]; | ||
+ | byte old_buffer_digital[NBR_IN]; | ||
+ | boolean buttonState[NBR_IN]; | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | { | ||
+ | | ||
+ | } | ||
+ | // | ||
+ | for(int i=0; i< | ||
+ | { | ||
+ | pinMode(input[i], | ||
+ | |||
+ | // | ||
+ | if(is_pullup[i]&& | ||
+ | {digitalWrite(input[i], | ||
+ | else | ||
+ | {digitalWrite(input[i], | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | void loop() | ||
+ | { | ||
+ | heph.checkSerial(); | ||
+ | read_input(); | ||
+ | |||
+ | //pour chaque sorties écrit la valeur envoyée par Hephaestos en pwm | ||
+ | for(int i=0; | ||
+ | { | ||
+ | | ||
+ | { | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void read_input() | ||
+ | { | ||
+ | for(int i=0; i< | ||
+ | { | ||
+ | old_buffer_digital[i]=buffer_digital[i]; | ||
+ | |||
+ | if(is_analog_in[i]==false) | ||
+ | { | ||
+ | if(is_pullup[i]) | ||
+ | {buttonState[i]= !digitalRead(input[i]); | ||
+ | if(is_pullup[i]==false) | ||
+ | {buttonState[i]=digitalRead(input[i]); | ||
+ | |||
+ | if(buttonState[i]) | ||
+ | { | ||
+ | buffer_digital[i]=255; | ||
+ | } | ||
+ | if(buttonState[i]==false) | ||
+ | { | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | if(is_analog_in[i]==true) | ||
+ | | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | //envoie a hephaestos le buffer | ||
+ | heph.setToHephaestos(buffer_digital, | ||
+ | } | ||
+ | </ | ||
+ | === analysons les différentes parties du code === | ||
+ | <code c++> | ||
+ | #include < | ||
+ | |||
+ | #include < | ||
+ | #include < | ||
+ | </ | ||
+ | Ajoute la bibliothèque Hephaestos et la bibliothèque softPWM pour que toutes les orties puissent être en PWM. | ||
+ | |||
+ | == La déclaration des variables globales à adapter par l' | ||
+ | Cette partie doit toujours être relue et adapté en fonction du circuit électronique branché à votre arduino. | ||
+ | <code c++> | ||
+ | //////////////// | ||
+ | const int BAUDRATE=9600; | ||
+ | // | ||
+ | const int NBR_IN=6; | ||
+ | int input[NBR_IN]={14, | ||
+ | boolean is_pullup[NBR_IN]={false, | ||
+ | boolean is_analog_in[NBR_IN]={true, | ||
+ | |||
+ | /// | ||
+ | const int NBR_OUT=12; //Nombre de patte en sorties | ||
+ | int output[NBR_OUT]={2, | ||
+ | boolean is_PWM[NBR_OUT]={true, | ||
+ | |||
+ | /////////////////// | ||
+ | </ | ||
+ | * Le baudrate est la vitesse de transition sur le port série. Elle doit être identique dans le sketch et dans la fenêtre de configuration arduino d' | ||
+ | * NBR_IN permet de définir le nombre de pattes de l' | ||
+ | * NBR_OUT permet de définir le nombre de pattes de l' | ||
+ | * int input[NBR_IN] est un tableau de valeur. Il va contenir le numéro de chaque patte de l' | ||
+ | int input[NBR_IN]={3, | ||
+ | * Même chose pour int output[NBR_OUT] mais concernant les sorties (numériques, | ||
+ | * boolean is_pullup[NBR_IN] définit pour chaque entrée si elle est en mode pull-up | ||
+ | * boolean is_analog_in[NBR_IN] définit pour chaque entrée si c'est une entrée analogique | ||
+ | * boolean is_PWM[NBR_OUT] définit pour chaque sortie si c'est une sortie PWM (gradué). | ||
+ | |||
+ | == La fonction void setup()== | ||
+ | Cette fonction est essentiel au langage Arduino. Elle va être effectuer qu'une fois à chaque démarrage de la carte et permet de configurer celle-ci. | ||
+ | Sauf cas exceptionnel, | ||
+ | |||
+ | == La fonction void loop()== | ||
+ | C'est la deuxième fonction primordiale du langage Arduino. A partir du moment ou la carte à démarrer, elle va exécuter cette fonction en boucle (d'ou le nom). C'est ici que vous définirez ce que vous voulez que votre carte fasse concrètement. | ||
+ | Dans l' | ||
+ | |||
+ | < | ||