Arduino Forum

International => Français => Le bar => Topic started by: clarahugy on Nov 16, 2015, 05:48 pm

Title: Bac-Ka-Poux-Bêle 2019-2020
Post by: clarahugy on Nov 16, 2015, 05:48 pm
bonjour,
j'ai acheté une carte arduino gsm shield R3, pour la relier à une carte commande pour une sonnette .
je souhaite que quand quelqu'un appuie sur un bouton poussoir , que le programme envoie un sms par le bié de la carte gsm et une carte commande arduino.
cela est pour mon projet j'aurai vraiment besoin d'un programme car ce que je trouve ne correspond pas vraiment à ce que je souhaite.
merci de votre aide

Title: Re: gsm envoie de sms
Post by: infobarquee on Nov 16, 2015, 10:11 pm
bonjour,
tu as déjà fait ton cahier des charges, tu as tout pour continuer.
déjà commencer par faire joujou avec la carte gsm pour envoyer des sms.
de l'autre coté, prendre un BP et allumer une led par exemple
et tu réunis les deux pour avoir ton prog complet.
Title: Re: gsm envoie de sms
Post by: bzhsurfing on Nov 17, 2015, 06:48 pm
Bonjour,
j'ai fais un programme comme je pense qu'il devrait être, essaye le et tiens moi au courant !
Title: Re: gsm envoie de sms
Post by: clarahugy on Nov 23, 2015, 05:02 pm
???? SVP aider moi int8_t answer;
int onModulePin= 2; // Il s'agit du port DTR (ou PWR) du module SIM900.
char aux_string[30];
// Inscrivez ici le numéro de téléphone pour l'envoie du SMS.
char phone_number[]="+33600000000";
void setup()
{

    pinMode(onModulePin, OUTPUT);
    Serial.begin(115200);
    Serial2.begin(115200);   
       
    Serial.println("------------------------------------------------------");
    Serial.println("----Upsilon Audio - Envoyer un SMS avec le SIM900-----");
    Serial.println("------------------------------------------------------");
    Serial.println("");
    Serial.println("Initialisation en cours ...");
    power_on();
   
    delay(3000);
   
    // Cette commande active la carte SIM.
    //Supprimez cette ligne si vous n'avez pas de code PIN.
    sendATcommand("AT+CPIN=****", "OK", 2000);
   
    delay(3000);
   
    Serial.println("Connexion au reseau en cours ...");

    while( (sendATcommand("AT+CREG?", "+CREG: 0,1", 500) ||
            sendATcommand("AT+CREG?", "+CREG: 0,5", 500)) == 0 );

    Serial.println("Mode SMS en cours d'activation ...");
    // Activation du mode texte pour les SMS.
    sendATcommand("AT+CMGF=1", "OK", 1000);
    Serial.println("Envoi du SMS en cours ...");
   
    sprintf(aux_string,"AT+CMGS=\"%s\"", phone_number);
    // Envoi du numéro de téléphone au module GSM.
    answer = sendATcommand(aux_string, ">", 2000);
    if (answer == 1)
    {
        // Insérez ici le coprs du message.
        Serial2.println("Ceci est un SMS !");
        Serial2.write(0x1A);
        answer = sendATcommand("", "OK", 20000);
        if (answer == 1)
        {
            Serial.println("Message envoye !");   
        }
        else
        {
            Serial.print("Erreur !");
        }
    }
    else
    {
        Serial.print("Erreur !");
        Serial.println(answer, DEC);
    }

}


void loop() // Il n'y a aucune commandes dans la fonction loop.
{
}

// Définition des différentes fonctions.

void power_on(){

    uint8_t answer=0;
   
    // Cette commande vérifie si le module GSM est en marche.
    answer = sendATcommand("AT", "OK", 2000);
    if (answer == 0)
    {
        // Mise en marche du module GSM
        digitalWrite(onModulePin,HIGH);
        delay(3000);
        digitalWrite(onModulePin,LOW);
   
        // Envoie d'une commande AT toutes les deux secondes et attente d'une réponse.
        while(answer == 0){
            answer = sendATcommand("AT", "OK", 2000);   
        }
    }
   
}

// Cette fonction permet d'envoyer des commandes AT au module GSM.
int8_t sendATcommand(char* ATcommand, char* expected_answer, unsigned int timeout){

    uint8_t x=0,  answer=0;
    char response[100];
    unsigned long previous;

    // Initialisation de la chaine de caractère (string).
    memset(response, '\0', 100);
   
    delay(100);
   
    // Initialisation du tampon d'entrée (input buffer).
    while( Serial2.available() > 0) Serial2.read();
   
    // Envoi des commandes AT
    Serial2.println(ATcommand);


    x = 0;
    previous = millis();

    // Cette boucle attend la réponse du module GSM.
   
    do{
// Cette commande vérifie s'il y a des données disponibles dans le tampon.
//Ces données sont comparées avec la réponse attendue.
        if(Serial2.available() != 0){   
            response
            x++;
            // Comparaison des données
            if (strstr(response, expected_answer) != NULL)   
            {
                answer = 1;
            }
        }
    // Attente d'une réponse.
    }while((answer == 0) && ((millis() - previous) < timeout));   

    //Serial.println(response); //Cette ligne permet de debuguer le programme en cas de problème !
    return answer;
}





j'ai truvé ca c'est bn
Title: Re: gsm envoie de sms
Post by: icare on Nov 23, 2015, 07:07 pm
Bonjour,
La première aide se trouve ici (http://forum.arduino.cc/index.php?topic=315372.msg2196181#msg2196181)
Title: problème de programmation
Post by: jojolito on Jan 23, 2019, 08:34 pm
Bonjour

Voilà je suis débutant et je viens tout juste de me mettre à l'architecture Arduino, bon je me suis acheté l'inflation mega édition Google ADK (parce que je suis un fan de l'univers Google lol )

J'ai commencé par un projet simple qui consiste faire fonctionner une sonde de température étanche DS18B20 acheter sur Amazon

 vu que je tâtonne encore niveau programmation je suis aller sur internet chercher des lignes de code tout fait et simple , le problème c'est que quand je rentre les lignes de codes dans le programme Arduino IDE et que je fais vérifier de nombreuses erreurs apparaissent..

pourtant j'ai bien fait attention à télécharger les bibliothèques nécessaires '' onewire " et "dallasinstrument"

Voici les les messages erreur:

C:\Users\xxxxx\Documents\Arduino\libraries\OneWire/OneWire.h:57:7: warning: type 'struct OneWire' violates one definition rule [-Wodr]

 class OneWire

       ^

C:\Users\xxxx\Documents\Arduino\libraries\OneWire\OneWire.h:259:7: note: a different type is defined in another translation unit

C:\Users\xxxxx\Documents\Arduino\libraries\OneWire/OneWire.h:68:10: note: the first difference of corresponding definitions is field 'LastDeviceFlag'

     bool LastDeviceFlag;

          ^

C:\Users\xxxxx\Documents\Arduino\libraries\OneWire\OneWire.h:270:13: note: a field of same name but different type is defined in another translation unit

<built-in>: note: type 'bool' should match type 'uint8_t'

c:\program files\windowsapps\arduinollc.arduinoide_1.8.19.0_x86__mdqgnx93n4wtt\hardware\tools\avr\avr\include\stdint.h:126:22: note: the incompatible type is defined here

 typedef unsigned int uint8_t __attribute__((__mode__(__QI__)));

                      ^

C:\Users\xxxxx\AppData\Local\Temp\cckmnESd.ltrans0.ltrans.o: In function `global constructors keyed to 65535_0_ArduinoLED.ino.cpp.o.1921':

<artificial>:(.text.startup+0x5e): undefined reference to `OneWire::begin(unsigned char)'

collect2.exe: error: ld returned 1 exit status

exit status 1
Erreur de compilation pour la carte Arduino Mega ADK




Et maintenant voilà les ligne de code que j'ai trouvé sur internet:

 // Inclusion de la bibliothèque
#include <OneWire.h>
 
// Connecteur numérique relié à DQ
const byte DS_PIN = 7;
 
 
// Création de l'objet associé au DS18B20
OneWire ds(DS_PIN);
 
 
//
// Fonction de lecture de la température
//
void getTemperature(float *temperature) {
 byte data[9], addr[8]; // Données et Adresse du module DS18B20
 
 // Réinitialisation du bus
 ds.reset_search();
 
 // Recherche du capteur
 if (!ds.search(addr)) return;
 
 // Vérification de l'adresse reçue
 if (OneWire::crc8(addr, 7) != addr[7]) return;
 
 // Vérification du modèle de capteur (DS18B20)
 if (addr[0] != 0x28) return;
 
 // Sélection du capteur
 ds.reset();
 ds.select(addr);
 
 // Lancement de la mesure
 ds.write(0x44, 1);
 delay(800);
 
 // Resélection du capteur
 ds.reset();
 ds.select(addr);
 
 // Envoie d'une demande de lecture
 ds.write(0xBE);
 
 // Lecture des données
 for (byte i = 0; i < 9; i++) {
 data = ds.read();
 }
 
 // Conversion des données en degrés Celcius
 *temperature = ((data[1] << 8) | data[0]) * 0.0625;
}
 
 
 
void setup() {
 Serial.begin(115200);
 }
 
 
 
void loop() {
 float temperature;
 
 // Lecture de la température
 getTemperature(&temperature);
 
 // Affichage de la température
 Serial.print(F("Temperature : "));
 Serial.print(temperature, 1);
 Serial.write(176); // Caractère degré
 Serial.write('C');
 Serial.println();
 }



S'il vous plaît vous pouvez m'aider ?





Title: Re: problème de programmation
Post by: al1fch on Jan 23, 2019, 08:43 pm
Bonjour et bienvenue sur le forum

Tu auras plus de lecteurs et de réponses si tu places ton code entre les balise appropriées (voir les messages importants épinglés en tête de forum)
D
ans un bloc de code comme ci -dessous le code sera plsu  lisible sur tablettes et smartphones , de plus le copié /coller propre dans l'IDE facilitera les tests. Pour ces raisons il est deamandé d'utiliser les balises.
Code: [Select]

// bloc de code......
Title: Re: problème de programmation
Post by: J-M-L on Jan 23, 2019, 10:34 pm
C'est parce qu'il y a des smileys à lunette dans le code 8)
Title: Re: problème de programmation
Post by: lesept on Jan 23, 2019, 11:18 pm
Ça peut être un problème d'installation de la bibliothèque, peux tu vérifier si le programme de test ici (https://playground.arduino.cc/Learning/OneWire) fonctionne ?
Title: Re: problème de programmation
Post by: hbachetti on Jan 23, 2019, 11:34 pm
Quote
C'est parce qu'il y a des smileys à lunette dans le code 8)
C'est vrai.
J'ai copié sans regarder dans l'IDE, les  8) deviennent des 8 !
Title: le Bac-Kapou-Bel
Post by: jfs on Feb 21, 2019, 09:55 pm
Voilà voilà..... impatient d'inaugurer  :smiley-mr-green:
Title: Help : Capturer le son et le stocker dans une carte SD pour un projet.
Post by: louismael on Feb 22, 2019, 05:29 pm
Bonjour,

Le titre est suffisant mais je vous donne plus de détails.
J'ai un capteur sonore ( Electret Mic Amp - MAX9814 ) et je cherche un code arduino pour que le composant capture le son et le stocke dans un (ou plusieurs) carte SD.

Merci de votre aide.
Title: Re: Help : Capturer le son et le stocker dans une carte SD pour un projet.
Post by: AgrafeuseWizard on Feb 22, 2019, 05:38 pm
Je ne peux pas trop t'aider pour ton problème mais je te souhaite bonne chance.

AgrafeuseWizard
Title: gsm et arduino
Post by: AMADOU5 on Feb 25, 2019, 10:24 pm
BON JOUR

je voudrais vérifier les commendes AT avec le gsm sim900 et arduino uno

J'ai un gsm sim900 quand je téléverse le programme les commende AT  NE REPOND PAS JE N'arrive pas a comprendre

voila le programme

#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM900
SoftwareSerial mySerial(7, 8); //SIM900 Tx & Rx is connected to Arduino #7 & #8

void setup()
{
  //Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
  Serial.begin(9600);
 
  //Begin serial communication with Arduino and SIM900
  mySerial.begin(9600);

  Serial.println("Initializing...");
  delay(1000);

  mySerial.println("AT"); //Handshaking with SIM900
  updateSerial();
  mySerial.println("AT+CSQ"); //Signal quality test, value range is 0-31 , 31 is the best
  updateSerial();
  mySerial.println("AT+CCID"); //Read SIM information to confirm whether the SIM is plugged
  updateSerial();
  mySerial.println("AT+CREG?"); //Check whether it has registered in the network
  updateSerial();
}

void loop()
{
  updateSerial();
}

void updateSerial()
{
  delay(500);
  while (Serial.available())
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available())
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

j'ai joint  un fichier rar  ( le capture d'ecran de monitor)

MERCI D'avance

Fichiertds.rar
Title: Re: gsm envoie de sms
Post by: al1fch on Feb 25, 2019, 11:20 pm
tu perds du temps , tiens compte du message d'icare juste au dessus du tien

Quand on arrive sur un forum , prendre le temps de découvrir son fonctionnement est un investissement rentable si on veut bénéficier de toute l'aide qu'il peut apporter.  Faute de quoi on fait fuit les aidants.
Prendre connaissance des messages épinglés en tête de forum.

-venir squatter un fil de discussion de 2015 n'est pas idéal......
-balancer du code en vrac dans le contenu du message ne convient pas (il aura très peu de lecteurs)
-pour le fichier 'joint' c'est à revoir
Title: détéction d'un courant éléctrique ARDUINO
Post by: loqmane on Feb 26, 2019, 05:34 pm
Bonjour,

Nous travaillons sur un projet qui consiste en la détéction de l éclairage d une piéce quelconque à l aide  d'un capteur qui sera mis derriére l interrupteur . On voudrait aussi afficher cela sur un tableau  de bord pour qu' on aie un aperçu

On voudrait aussi mettre en place un outil sur le  tableau de bord qui   pourra éteindre cet  éclairage

Mes questions sont les suivantes:

" Quels types de capteur devrais je utiliser ?"

"Comment procéder pour éteindre cet éclairage ?"

Voilà j attend vos réponses
Title: Re: Projet détéction d allumage d une piéce
Post by: dbrion06 on Feb 26, 2019, 05:42 pm
Votre capteur a-t-il pour fonction:
a) de détecter que l'interrupteur est enclenché
b) de détecter qu'il y a de la lumière?

Pour éteindre du secteur, sans trop de risque, je verrais un ULN28003, alimenté par une patte d'Arduino et  alimentant un relais ....
Title: Re: Projet détéction d allumage d une piéce
Post by: loqmane on Feb 26, 2019, 05:44 pm
De détécter que l intérrupteur est enclenché
Title: Re: Projet détéction d allumage d une piéce
Post by: CelticLord on Feb 26, 2019, 07:49 pm
Capteur mécanique ou autres tout est possible, le tableau de bord tu peux utiliser un esp8266 branché sur le capteur et une interface web simple en wifi
Title: Re: Projet détéction d allumage d une piéce
Post by: al1fch on Feb 26, 2019, 07:51 pm
Bonsoir
Comme détecteur d'état du l'interrupteur il est possible d'associer une luciole neon (avec sa résistance) et un phototransistor ou avec une photorésistance.
Avec ce type d'optocoupleur maison l'isolation galvanique pourrait être satisfaisante.

Quote
Nous travaillons sur un projet
projet scolaire ? annoncer la couleur.....
Title: Re: Projet détéction d allumage d une piéce
Post by: hazerty565 on Feb 26, 2019, 09:25 pm
tu prend un SONOFF basic ou dual, tu rajoute un petit montage avec swich

http://tinkerman.cat/smart-wall-switches-and-push-buttons/

tu peux avoir l'etat de la lumiere et eteindre/alumé quand tu veux via wifi... ect...
Title: Suivi d'une balise
Post by: clemclemclem on Mar 04, 2019, 11:10 am
Bonjour à tous comme des centaines de personnes sur ce forum je suis nouveau ici et dans le cadre d'un projet de groupe j'ai besoin de trouver des solutions afin d'ordonner à mon robot d' avancer, pivoter dans la bonne direction ou de reculer en fonction de sa distance et sa direction avec une personne portant une balise. (suivre la balise afin de rester à environ 1m d'elle, dans un environnement intérieur.

Suite à mes recherches j'envisage de faire une triangulation par ondes radio ou bluetooth, avec un émetteur sur la balise, et deux récepteurs espacés sur le robot, ou bien un récepteur qui s'orienterai dans la direction de l'émetteur, voila j'ai entendu parler de RSSI mais je suis bloqué dans mes recherches je n'arrive pas à trouver de solutions concrètes, je n'ai encore aucune référence, quelles solutions dois-je mettre en oeuvre et comment ? Comment bien me documenter pour être capable de réaliser ce projet ?

Je vous remercie et j'espère que vous serez capable de m'apporter une aide qui serait précieuse.
Title: Re: Suivi d'une balise
Post by: clemclemclem on Mar 04, 2019, 11:22 am
up
Title: Re: Suivi d'une balise
Post by: J-M-L on Mar 04, 2019, 11:25 am
un UP 12 minutes après avoir posté n'est pas acceptable sur ce forum.

lisez les règles d'usage et si c'est un projet de bac, annoncez le tel-quel.

cherchez aussi sur le forum, le sujet a déjà été discuté plusieurs fois. Quelle information ne trouvez vous pas dans les autres posts ?
Title: Re: Suivi d'une balise
Post by: clemclemclem on Mar 04, 2019, 11:29 am
Oui effectivement je suis plutot préssé haha, je sais que la question a deja ete étudiée sur ces forums mais justement je me trouve bloqué si t'a
Title: Re: Suivi d'une balise
Post by: dbrion06 on Mar 04, 2019, 11:30 am
Je ne comprends pas votre premier post:
envisagez vous de faire une tourelle s'orientant vers le maximum de signal radio capté par une antenne directionnelle? Ceci ferait une chose énorme en ondes très courtes (430 Mhz: l'antenne aurait des dm), mais a été fait pour le wifi https://www.sparkfun.com/news/2342 (il vous faut un emetteur wifi en plus....) dans le domaine des arduino basés sur le esp8266 (peuvent être moins chers que les avr- arduini)

Est ce que des photorésistances ne seraient pas suffisantes, moins chères  pour suivre, au moins dans l'obscurité, un faisceau lumineux.....
Title: Re: Suivi d'une balise
Post by: clemclemclem on Mar 04, 2019, 11:43 am
Bonjour dbrion06, je n'ai pas compris ton message, et je ne sais absolument pas ce que j'envisage de faire, je n'ai que des pistes pour l'instant. Peux tu m'expliquer de quoi tu me parle s'il te plait ?
Merci de ta réponse.


Title: Re: Suivi d'une balise
Post by: dbrion06 on Mar 04, 2019, 11:57 am
La première étape d'une triangulation, c'est d'avoir un axe (ensuite, yakafokon la répète trois fois) :

je vous ai donné une piste avec des ondes radio -testée par Sparkfun, constructeur renommé-

et une solution moins lourde, si on reste dans l'obscurité, est d'utiliser des faisceaux lumineux....et des photoresistances (peut être qu'à terme, la solution radio sera la moins chère).
Et je ne sais pas non plus ce que vous envisagez de faire? Créer un club d'hésitants? vous documenter? préciser votre demande?
Title: projet de robot planteur
Post by: remsy74000 on Mar 04, 2019, 04:49 pm
const float SOUND_SPEED = 340.0 / 1000;
const byte TRIGGER_PIN = 2; // Broche TRIGGER
const byte ECHO_PIN = 3; // Broche ECHO
const byte var
const unsigned long MEASURE_TIMEOUT = 50000UL; // 25ms = ~8m à



#include <Servo.h>

Servo monServomoteur;


void setup() {
   // Attache le servomoteur à la broche D9
  monServomoteur.attach(9);
 
 Serial.begin(9600);


 pinMode(TRIGGER_PIN, OUTPUT);
 digitalWrite(TRIGGER_PIN, LOW);
 pinMode(ECHO_PIN, INPUT);

}

void loop() {
 

 digitalWrite(TRIGGER_PIN, HIGH);
 delayMicroseconds(10);
 digitalWrite(TRIGGER_PIN, LOW);

 long measure = pulseIn(ECHO_PIN, HIGH, MEASURE_TIMEOUT);


 float distance_mm = measure / 2.0 * SOUND_SPEED;

 Serial.print(F("Distance: "));
 Serial.print(distance_mm / 1000.0, 2);
 Serial.println(F("m)"));

 

delay (500);
   // Fait bouger le bras de 0° à 180°
  for (unsigned long position = 1000; position <= 2000; position += 5)
    monServomoteur.writeMicroseconds(position);
    delay(1230);
     // Fait bouger le bras de 180° à 10°
  for (unsigned long position = 2000; position >= 1000; position -= 5)
    monServomoteur.writeMicroseconds(position);
    delay(1230);
switch (var) {
  case 1:
  Serial.print ("Distance" >=0.1"m");

(unsigned long position = 1000; position <= 2000; position += 5)
    monServomoteur.writeMicroseconds(position);
    delay(1230);
break;
 case 2:
 Serial.print ("Distance" >=0.1"m");
(unsigned long position = 2000; position >= 1000; position -= 5)
    monServomoteur.writeMicroseconds(position);
    delay(1230);
    break;}



Bonjour voici  notre projet un planteur de graines autonome qui fonctionne grâce a un capteur ultrasonore programmé pour indiquer une valeur de distance en mètres. L'idée est d'ensuite par rapport à une distance donnée par le capteur commander un servo moteur et ainsi, par exemple si le véhicule dévie de plus de 10 cm de sa trajectoire a gauche ou a droite le programme envoi une commande au servo moteur qui rectifie la trajectoire.le programme du capteur ultasonore et celui du servo moteur fonctionne indépendamment. mais lorsque je les compile je n'y arrive pas pourriez vous m'aider svp merci
Title: Re: projet de robot planteur
Post by: Zlika on Mar 04, 2019, 06:03 pm
Boujour,

Merci de bien vouloir lire les sujets épinglés en tête de forum.
Votre code doit être entre balises pour une présentation optimale sur le site.
Une modification de votre post s'impose  ;).
Title: Re: projet de robot planteur
Post by: dbrion06 on Mar 04, 2019, 06:38 pm
Dejà, vous avez oublié de clore (par des curly brackets) la fonction loop (mettez sous arduino le curseur sur le curly bracket ouvrant de loop() {: il devrait être rouge, ou alors vous avez mal copié collé l'integralité de votre code. J'ai corrigé cette erreur triviale, et je n'ai pas testé plus loin à la compilation; le code résultant est
Code: [Select]
const float SOUND_SPEED = 340.0 / 1000;
const byte TRIGGER_PIN = 2; // Broche TRIGGER
const byte ECHO_PIN = 3; // Broche ECHO
const byte var
const unsigned long MEASURE_TIMEOUT = 50000UL; // 25ms = ~8m à



#include <Servo.h>

Servo monServomoteur;


void setup() {
    // Attache le servomoteur à la broche D9
    monServomoteur.attach(9);

    Serial.begin(9600);


    pinMode(TRIGGER_PIN, OUTPUT);
    digitalWrite(TRIGGER_PIN, LOW);
    pinMode(ECHO_PIN, INPUT);
}

void loop() {


    digitalWrite(TRIGGER_PIN, HIGH);
    delayMicroseconds(10);
    digitalWrite(TRIGGER_PIN, LOW);

    long measure = pulseIn(ECHO_PIN, HIGH, MEASURE_TIMEOUT);


    float distance_mm = measure / 2.0 * SOUND_SPEED;

    Serial.print(F("Distance: "));
    Serial.print(distance_mm / 1000.0, 2);
    Serial.println(F("m)"));
   delay (500);
    // Fait bouger le bras de 0° à 180°
    for (unsigned long position = 1000; position <= 2000; position += 5)
        monServomoteur.writeMicroseconds(position);
    delay(1230);
    // Fait bouger le bras de 180° à 10°
    for (unsigned long position = 2000; position >= 1000; position -= 5)
        monServomoteur.writeMicroseconds(position);
    delay(1230);
    switch (var) {
    case 1:
        Serial.print ("Distance" >=0.1"m");

        (unsigned long position = 1000; position <= 2000; position += 5)
        monServomoteur.writeMicroseconds(position);
        delay(1230);
        break;
    case 2:
        Serial.print ("Distance" >=0.1"m");
        (unsigned long position = 2000; position >= 1000; position -= 5)
        monServomoteur.writeMicroseconds(position);
        delay(1230);
        break;
    }
}

 


Je ai aussi passé votre code dans astyle (rend un peu plus beau: comme le formattage automatique d'Arduino, qui peut faire voir des horreurs).

Si votre code ne compile pas, essayez de copier coller la première erreur (et normalement, le curseur va à la première ligne erronée qui se colorie en rose)
Title: Programme Capteurs
Post by: AdrienBarbin on Mar 12, 2019, 10:58 am
Bonjour, j'ai deux capteurs que j'ai acheté et je souhaite les brancher ensemble afin qu'ils mesurent tous les deux des valeurs:

capteur anémomètre :
https://www.lextronic.fr/temperature-meteo/19999-capteur-anenometre.html
(j'ai utilisé le branchement numéro 2)


capteur girouette:
https://www.gotronic.fr/art-capteur-girouette-25973.htm


[ Code]

#include <math.h>

#define WindSensorPin (2) // Location de la broche en D2

volatile unsigned long Rotations; // cup rotation counter used in interrupt routine
volatile unsigned long ContactBounceTime; // Timer to avoid contact bounce in interrupt routine

float WindSpeed; // kilomètres par heure

void setup() {
  Serial.begin(9600);

  pinMode(WindSensorPin, INPUT);
  attachInterrupt(digitalPinToInterrupt(WindSensorPin), isr_rotation, FALLING);
}



void loop() {

  Rotations = 0; // Set Rotations count to 0 ready for calculations

  sei(); // Enables interrupts
  delay (5000); // attendre 5 secondes
  cli(); // Disable interrupts

  // convert to mp/h using the formula V=P(2.25/T)
  // V = P(2.25/3) =( P * 0.75 ) * 1.61 (*1.61> conversion mph en km/h)(1 mile = 1.61km)

  WindSpeed = (Rotations * 0.75) * 1.61 ;

  int sensorValue = analogRead(A1);
  Serial.println("Test Vitesse du vent");
  Serial.println("Rotations\tkm/h");
  Serial.println(" ");
  Serial.print(Rotations); Serial.print("\t\t");
  Serial.println(WindSpeed);
  Serial.println(" ");
  delay(5000);
  Serial.println("Direction du vent");
  Serial.println(sensorValue);
  Serial.println(" ");
  //float angle= 0.1569280069*sensorValue+96.9848608491;  (équation trouvée par le tableur)
  //Serial.println(angle);



}

// This is the function that the interrupt calls to increment the rotation count
void isr_rotation () {

  if ((millis() - ContactBounceTime) > 15 ) { // debounce the switch contact.
    Rotations++;
    ContactBounceTime = millis();
  }

}[ /Code]

Le problème étant que lorsque j'utilise le moniteur de série, seul la girouette m'affiche les valeurs correctes relevée par celle-ci. J'ai aussi rajouté le programme de l'anémomètre juste au dessus, le moniteur série m'indique constamment 0, alors qu'il marchait très bien séparément.
Je souhaiterais comprendre mes erreurs/avoir des corrections.
Cordialement,
Title: Re: Programme Capteurs
Post by: pomme-poire on Mar 12, 2019, 11:28 am
0x0.75x1.61 = 0
mais tu vas te faire engueuler....
Title: Re: Projet STI2D........
Post by: xXlouisXx on Mar 12, 2019, 11:45 am
Bonjour je suis élève de STI2D SIN et j'aurais besoin d'un programme pour remettre a zéro mon codeur  incrémentale (car celui ci n'en n'a pas ) une fois qu'un capteur fin de course est activé. j'ai déjà fait un programme pour le codeur que voici :


#define pin 4
int res_codeur=6335;
float angle;
byte etat;
void setup() {
  pinMode(9,INPUT);
  pinMode(10,INPUT);
  attachInterrupt(0,calculangle,RISING); //l'interruption stoppe momentanément les travaux de la boucle loop pour effectuer le calcul de l'angle
Serial.begin(9600);
}

void calculangle()
{

  etat=digitalRead(3);
 
 if(etat==1)
 {
  angle=angle+0.05;
 }
 else
 {
  angle=angle-0.05;
 }
 if
 {
  interrupteur=1
  }
 }
 
void loop() {
Serial.print("etat");
  Serial.println(etat);
  Serial.println(angle);
}
Title: Re: Re: Projet STI2D........
Post by: lesept on Mar 12, 2019, 11:47 am
Crée un fil de discussion séparé pour ton problème afin de ne pas mélanger les réponses, sinon on n'y comprendra rien très rapidement. Demande au modérateur (bouton 'report to moderator' en bas de ton message)
Title: Re: Programme Capteurs
Post by: lesept on Mar 12, 2019, 12:25 pm
Non, la variable Rotations est incrémentée dans la routine d'interruption : si le programme y rentre la valeur devrait augmenter.

Ici, tu n'as pas besoin des parenthèses, mais ça ne doit pas changer grand chose :
Code: [Select]
#define WindSensorPin (2)

Tu devrais ôter le second delay(5000), celui dans les instructions d'affichage.

Où as-tu trouvé le code ?
Title: Re: Programme Capteurs
Post by: dbrion06 on Mar 12, 2019, 12:33 pm
mais tu vas te faire engueuler....
Parce qu'il a mis une majuscule à Code?
Title: Re: Programme Capteurs
Post by: pomme-poire on Mar 12, 2019, 01:24 pm
oui pour les deux
donne voir ton schéma électrique ?
Title: Re: Programme Capteurs
Post by: al1fch on Mar 12, 2019, 01:49 pm
et aussi pour le code posté en vrac dans le corps du message , sans balises correctement utilisées
c'est un truc à finir au bakapoupel :(

AdrienBarbin arrive, est-ce trop demander que de l'inviter à bien lire les consignes et s'assurer que le balisage a produit son effet. ?
Title: Re: Programme Capteurs
Post by: dbrion06 on Mar 12, 2019, 02:15 pm
C'est une Minuscule erreur
Title: Re: Programme Capteurs
Post by: pomme-poire on Mar 12, 2019, 03:33 pm
je me disais que ça allait tomber.....
Title: Re: Programme Capteurs
Post by: al1fch on Mar 12, 2019, 04:10 pm
erreur facile à corriger avec un peu de bonne volonté
Il faut être pragmatique , cette précaution augmente le nombre de lecteurs ... et les chances de réponses .
cf "Bien éditer son post pour les nuls (http://"http://\"http://http:http://forum.arduino.cc/index.php?topic=394754.0"")"

C'est de plus la 6e règle du Forum (http://"http://\"http://forum.arduino.cc/index.php?topic=546956.0"")

Quote
Je souhaiterais comprendre mes erreurs/avoir des corrections.
Quand on écrit cela, il vaut mieux éviter se se mettre un handicap en réduisant les possibilités de réponses
Title: gsm et arduino
Post by: AMADOU5 on Mar 12, 2019, 06:28 pm
bonjour

j'ai un problème a réaliser un code qui permet de déclencher arrosage a travers un smartphone.

voila le code qui permet de connaitre l'etat du sol a travers gsm .

#include <SoftwareSerial.h>

SoftwareSerial mySerial(7, 8);

//int activer = 1; // ordre d'envoyer SMS

int val;

int l=13;

int i=0;

int secCount = 0;

int humideCount = 0;

int tropHumideCount = 0;

const int MAX_SMS_SENT = 2;

void setup()

{

   pinMode(13, OUTPUT);

    mySerial.begin(19200);             

    Serial.begin(19200);   

    delay(500);

   

}

void loop()

{

   val=analogRead(A0);

   String etat;

    Serial.print ("valeur est:");

  Serial.println(val);

  delay(100);

  if (val <=400){

    etat="sec";

 

    while(secCount < MAX_SMS_SENT){

     Serial.print ("\n secCount est : ");

     Serial.println(secCount);

 

     digitalWrite(13,HIGH);

    //Pour envoyer un sms sous forme de texte

       mySerial.print("AT+CMGF=1\r");   

       delay(100);

       //Numero de telephone du destinataire

       mySerial.println("AT + CMGS = \"numero\"");

       delay(100);

       mySerial.println("Alerte le sol est sec: ");

       delay(100);

       mySerial.println((char)26); // 26 equivalent ASCII de ctrl+z (fin du message:CTRL-Z)

       delay(100);

       mySerial.println("c'est fait.");

       secCount++;

      } 

    } 

    if(val>400 && val<700){

     

       etat="humide";

   

    while(humideCount < MAX_SMS_SENT){

     Serial.print ("\n humideCount est : ");

     Serial.println(humideCount);

 

     digitalWrite(13,HIGH);

    //Pour envoyer un sms sous forme de texte

       mySerial.print("AT+CMGF=1\r");   

       delay(100);

       //Numero de telephone du destinataire

       mySerial.println("AT + CMGS = \"numero\"");

       delay(100);

       mySerial.println("Alerte le sol est humide: ");

       delay(100);

       mySerial.println((char)26); // 26 equivalent ASCII de ctrl+z (fin du message:CTRL-Z)

       delay(100);

       mySerial.println("c'est fait.");

       humideCount++;

      } 

     

       digitalWrite(13,LOW);

   

       Serial.print("sol est");

       Serial. println(etat);

    }

   

    if(val >700){

      etat="trop";

    while(tropHumideCount < MAX_SMS_SENT){

     Serial.print ("\n tropHumideCount est : ");

     Serial.println(tropHumideCount);

 

     digitalWrite(13,HIGH);

    //Pour envoyer un sms sous forme de texte

       mySerial.print("AT+CMGF=1\r");   

       delay(100);

       //Numero de telephone du destinataire

       mySerial.println("AT + CMGS = \"numero \"");

       delay(100);

       mySerial.println("Alerte le sol est trop humide: ");

       delay(100);

       mySerial.println((char)26); // 26 equivalent ASCII de ctrl+z (fin du message:CTRL-Z)

       delay(100);

       mySerial.println("c'est fait.");

       tropHumideCount++;

      } 

     

      digitalWrite(13,LOW);

   

      Serial.print("sol est");

      Serial. println(etat);

    }

  delay(1000);

 }

je voudrais ajouter le code qui permet de déclencher l'arrosager via gsm
Title: Variateur de puissance avec affichage lcd.
Post by: Wilfried17 on Mar 12, 2019, 07:57 pm
Bonjour,

Pour mon premier projet sur arduino je souhaite afficher la valeur d'un potentiomètre sur un lcd 16*2 en pourcentage ( 0 à 1024 en 0 à 100%). le but par la suite et de contrôler un esc en PWM. Donc la valeur récupérer du potentiomètre serait la puissance moteur.   

voici le code de base que j'ai pour afficher un message sur mon lcd:

//Library version:1.1 arduino_499745
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
  pinMode(A0,INPUT);
i  lcd.init();                      // initialize the lcd
  lcd.backlight();
  lcd.setCursor(12, 0);
  lcdprint("100%");
}
void lcdprint(String s) {
  for (int  i = 0; i < s.length(); i++)  lcd.print(s);

}
void loop()
{
}

Le problème et que je ne sais pas comment coder pour indiquer au lcd de prendre une valeur x varient entre 0 et 1023 et le convertir en pourcentage.

Merci.  :)
Title: Application
Post by: haydersaid on Mar 12, 2019, 08:47 pm
y'a-t-il la possibilité de communiquer Applicatio arduino avec une base de données ?
Title: Re: Application
Post by: lesept on Mar 12, 2019, 09:38 pm
Cherche "arduino database" ou "arduino database mysql" avec Google
Title: Re: gsm et arduino
Post by: J-M-L on Mar 13, 2019, 08:31 am
Lisez les règles d'usage du forum svp
Title: Re: gsm envoie de sms
Post by: J-M-L on Mar 13, 2019, 12:42 pm
c'est cool à regarder finalement la liste de mauvais posts :)

Title: Re: Variateur de puissance avec affichage lcd.
Post by: dbrion06 on Mar 13, 2019, 01:22 pm
Code: [Select]

//Library version:1.1 arduino_499745
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); // set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
  pinMode(A0,INPUT);
i  lcd.init();                      // initialize the lcd
  lcd.backlight();
  lcd.setCursor(12, 0);
  lcdprint("100%");
}
void lcdprint(String s) { // sert à rien; n'est pas commentée (et vous verrez qu'elle est absude)
  for (int  i = 0; i < s.length(); i++)  lcd.print(s);

}
void loop()
{

// lire la valeur analogique : 10 bits -> uint16_t lu; la conertir en %
// uint16_t pcent = (lu * 25) / 256; // 100% correspond à 1024 -> 25% (5 bits) à 256...
// lcd.print(pcent); lcd.print accepte des entiers comme un grand; positionner curseur où vous voules
}

Title: Re: Bac-Kapou-Bel
Post by: jfs on Mar 13, 2019, 01:27 pm
c'est cool à regarder finalement la liste de mauvais posts :)


Oui, si certains sujets sont fait en même temps ça les mélanges complètement.... une belle salade

 :smiley-mr-green:
Title: Re: Bac-Ka-Poux-Bêle
Post by: dbrion06 on Mar 13, 2019, 01:46 pm
Quelles horreurs
Title: Projet de SIN, STI2D : Télégestation d'un Aquarium Tropical
Post by: LucasCHANTH on Mar 13, 2019, 03:35 pm
Bonjour,

Actuellement en terminale STI2D, j'ai un projet qui est d'automatiser un aquarium tropical au travers de différentes tâches :
- Contrôler le niveau de l'eau
- Réguler le taux de pH
- Réguler la température
- Distribuer de la nourriture aux poissons

Moi, je m'occupe du niveau d'eau, ce qui veut donc dire que je dois contrôler le niveau d'eau et en ajouter si nécessaire.

J'envisage de mettre deux capteurs de niveaux d'eau, un situé à une limite dite haute et un second à une limite dite basse.

De ce fait, quand l'eau est en dessous du capteur de niveau bas l'électrovanne s'ouvre en injecte de l'eau jusqu'à ce que le capteur de niveau haut soit au contact de l'eau ce qui aura pour conséquence de fermer l'électrovanne.
Sachant que quand l'utilisateur va sur l'écran LCD, il puisse lire à quel niveau est l'eau.


Pour cela, j'ai à ma disposition 2 capteurs de niveaux (Composant : 101020018) dont je possède le programme qui ne fonctionne seulement pour 1 capteur :

#define WATER_SENSOR 2

void setup()
{
  Serial.begin (9600);
  pinMode(WATER_SENSOR, INPUT);
}
void loop()
{
  Serial.println(digitalRead(WATER_SENSOR));
  delay(500);
}

Mais je dispose aussi d'un relais (103020005) dont je possède aussi le programme mais je n'ai hélas pas pue le tester :

/ Relay Control void setup() { pinMode(2, INPUT); pinMode(3, INPUT); pinMode(4, OUTPUT); } void loop() { if (digitalRead(2)==HIGH) { digitalWrite(4, HIGH); delay(100); } if (digitalRead(3)==HIGH) { digitalWrite(4, LOW); } }


Et je possède aussi l'électrovanne (VMA422)
Pour finir, je possède bien évidement une Arduino Mega et un shiled pour celle-ci.

Comme vous l'aurez très certainement remarquer, j'ai poser le shiled sur l'arduino mega, puis j'ai brancher le câble I2C sur un port du shiled et sur le port du capteur de niveau.

Cependant je ne sais pas quoi faire avec tout ces composants, je ne sais pas si il faut modifier le programme du capteur pour pouvoir lire les 2 capteurs. Mais aussi, je ne sais pas comment tout câbler et je ne connais aucun programme qu'il faudrait pour ouvrir l'électrovanne et aussi si vous pourriez m'aider à afficher les valeurs du niveau d'eau sur un petit écran LCD.

Es que vous pourriez m'aidez au niveau du programme et au niveau du câblage ?
En attente d'une réponse de votre part et en vous remerciant d'avoir lu mon problème.
Title: Re: Projet de SIN, STI2D : Télégestation d'un Aquarium Tropical
Post by: Zlika on Mar 13, 2019, 03:57 pm
Bonjour,

Pour comprendre comment câbler un composant et le commander, orientez vous vers sa documentation.

Pour le programme, tester séparément chaque composant pour vérifier que votre code fonctionne.
Il ne vous restera plus qu'à regrouper le tout dans un seul programme en plaçant les déclarations avec les déclarations, les parties des Setup ensemble et enfin les parties de la loop().
Attention aux variables qui portent le même nom.

Un conseil, n'utilisez pas la fonction délais() qui nuirait sûrement aux programme final.
Et utiliser la balise de code pour vos prochain post.
Title: Re: Projet de SIN, STI2D : Télégestation d'un Aquarium Tropical
Post by: dbrion06 on Mar 13, 2019, 04:10 pm
Code: [Select]


#define WATER_SENSOR 2 // sert à rien
const int niveauhaut=LAPATTEOUVOUSLAVEZCABLE;
const int niveauBas= LAUTREPATTEDENTREE;
void setup()
{
  Serial.begin (9600);
pinMode (,niveauhaut, INPUT);
pinMode (niveauBas, INPUT);
}
void loop()
{
  Serial.println(digitalRead(WATER_SENSOR)); NON
  if (digitalRead(niveauhaut) Seriel.print("LE haut est humide"); else Serial.print("Le haut est sec");
 
  if (digitalRead(niveauBas)  Seriel.println("Le bas est humide"); else Serial.println("Le bas est sec");
 
delay(500);
}


a des chances de donner des messages interessants
Title: Re: Projet de SIN, STI2D : Télégestation d'un Aquarium Tropical
Post by: dbrion06 on Mar 13, 2019, 04:29 pm
S'agit il d'une couveuse à poissons?
Title: Crée un serveur bluetooth pour communiquer avec MIT app inventor
Post by: Cimmerian on Mar 13, 2019, 04:40 pm
Bonjour, j'aimerai crée un serveur bluetooth sur mon arduino afin de recevoir et envoyer des informations avec un téléphone android. Mon projet est de crée un robot qui puisse guider une personne dans son domicile. Le téléphone servira de télécommande pour que l'utilisateur puisse choisir le trajet qu'il souhaite (trajet 1, trajet 2.....) et ce même téléphone lui avertira d'un obstacle détecté par l'Arduino. Donc du coté de MIT APP Inventor, j'ai crée l'application android avec l'interface, mais ce que j'aimerai c'est faire le lien avec l'arduino. Et du coté de l'arduino je suis un débutant, je ne sais pas comment l'arduino gère le bluetooth. Donc si vous pouviez me donner des pistes je vous en serai reconnaissant. J'ai un module bluetooth hc-05
Title: Besoin d'aide pour un programme pour mon TPE
Post by: akira1323 on Mar 13, 2019, 05:27 pm
Bonjour , alors pour mon TPE j'avais pour projet de faire un détecteur d'incendie a plusieurs niveau de danger , tout allait bien dans mon programme jusqu'à que je décide d'ajouter des led de couleur par niveau de danger , et la je ne comprends plus rien , voila ce que j'ai
(https://imgur.com/a/w2Kl0Vy)
ce que je ne comprends pas , c'est qu'il suffit que je change les signe supérieur avec les signe inférieur , et si j'intervertis le tone avec le notone , le programme marche d'un coup
Merci a ceux qui prendront la paine de m'aider  :)
Title: Aide pour un code pour piloter 2 moteurs CC avec un pont en h
Post by: Ilano on Mar 18, 2019, 09:24 am
Bonjour, enfaîte je rencontre un soucis, actuellement je dois effectuer un projet pour contrôler 2 moteurs CC avec un pont en h puis mettre ce code en relation avec une raspberry pour pouvoir les contrôler avec 4 bouton qui contrôlerai chacun un moteur, mais mon soucis c'est que j'ai du mal avec le codage de l'arduino. Pouvez vous m'en proposez un par rapport à mon câblage ? Merci.

(https://s3-eu-west-1.amazonaws.com/sdz-upload/prod/upload/connexionL293D.png)
Title: Re: Aide pour un code pour piloter 2 moteurs CC avec un pont en h
Post by: 68tjs on Mar 18, 2019, 01:21 pm
Quote
je dois effectuer un projet pour contrôler 2 moteurs CC
Quote
avec 4 bouton qui contrôlerai chacun un moteur,
Quote
c'est que j'ai du mal avec le codage de l'arduino. Pouvez vous m'en proposez un par rapport à mon câblage ?
Ce n'est pas du foutage de gueule ? 

Je sens un bon candidat pour le  "Bakapoubelle" (voir dans le sous forum "le Bar")
Title: Projet de fin d'année.
Post by: Paurek on Mar 19, 2019, 06:03 pm
Bonjour, voila j'ai actuellement un projet de fin d'année à réaliser pour le lycée et je ne sais pas par ou commencer, les profs ne nous aidant pas.

Notre projet à pour but que l'utilisateur saute sur une planche de saut et un relevé se produit grâce à un capteur optique avec l'arduino qui déclenche un chronomètre pour calculer le temps de vol de l'utilisateur.
Je dispose d'un arduino avec un module ESP8266.

L'arduino doit envoyer les données de l'esp8266 à un router Dlink wifi qui lui va renvoyer celle-ci à une base de donnée situé sur un autre PC.

Je ne sais pas par ou démarrer, que dois je faire et comment m'en sortir. Je ne suis pas super balaise en Arduino...

Merci pour votre aide.
Title: Re: Projet de fin d'année.
Post by: funkTLS on Mar 19, 2019, 06:15 pm
Découper votre projet en plusieurs fonctions élémentaires (lecture de capteur, chronométrage, communication wifi, bdd), et prendre les problèmes les uns après les autres.

D'ailleurs je ne comprends pas ce à quoi l'Arduino pourra servir, l'esp8266 doit pouvoir faire tout ça comme un grand.
Title: Horloge et alarm
Post by: MNASSRIA on Mar 20, 2019, 12:22 pm
Bonjour à tous
Je besoin d 'aide s' ils vous plaît. Je veux savoir comment activer une alarm selon "jour_heur et minute".
Merci.
Title: Re: Horloge et alarm
Post by: J-M-L on Mar 20, 2019, 12:25 pm
je sens que ce post va vite aller à la poublelle.. lisez les règles d'usage du forum SVP
Title: Re: Horloge et alarm
Post by: dfgh on Mar 20, 2019, 12:28 pm
et avec ça, un petit café ?
Title: Re: Horloge et alarm
Post by: lesept on Mar 20, 2019, 03:36 pm
et avec ça, un petit café ?
Oui, mais quand (jour, heure, minute) ?
Title: Re: Horloge et alarm
Post by: hbachetti on Mar 20, 2019, 03:49 pm
Pour pouvoir servir le café avec un ARDUINO à une heure précise, il faut un DS3231 et un relais.

(https://i.pinimg.com/originals/48/b2/1c/48b21ce282c2c0e378bb584319c90aae.gif)

Bon, OK je sors ...  :smiley-confuse:
Title: Re: Horloge et alarm
Post by: dbrion06 on Mar 20, 2019, 04:05 pm
Ou un cadran solaire, une cellule photo electrique et un relais...
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: lesept on Mar 20, 2019, 05:00 pm
Ou un sablier, un cellule photo, un bras robot...
Title: /!\ Help /!\ XBEE PROJET TERMINALE
Post by: REMLPV on Mar 20, 2019, 06:02 pm
Bonjour à tous !

Je viens à vous car j'ai une revue de Projet de fin de terminale SSI vendredi, et voici plusieurs semaines que j'essaye de terminer mon expérimentation.

L'étude que je réalise porte sur la transmission de données, et pour cela j'ai décidé d'envoyer des trames d'un XBee à un autre et de vérifier grace à un Checksum Complément à 255 que la trame a correctement été reçu.

Seulement voila, je n'ai que très peu de connaissances en Arduino et mon programme ne fonctionne pas du tout. Il me reste deux jours et je compte bien réussir à obtenir des résultats.

Le problème à l'envoi est que mes caractères ne sont pas les bons à l'affichage et je reçois des " OK" puis "ERROR" quand j'appuie sur mon bouton.

A la réception, rien ne se passe, je pense que mon parsing n'est pas correct, de ce fait je n'obtiens aucun résultats.

je vous ai joint mes programme d'envoi et de réception ainsi que le protocole d'expérimentation.

Merci d'avance =)
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: Artouste on Mar 20, 2019, 10:15 pm
Pour pouvoir servir le café avec un ARDUINO à une heure précise, il faut un DS3231 et un relais.

(https://i.pinimg.com/originals/48/b2/1c/48b21ce282c2c0e378bb584319c90aae.gif)

Bon, OK je sors ...  :smiley-confuse:

:smiley-mr-green:

Ou ... juste une arduino avec du personnel dispo H24
il fut un temps où ça devait se faire 8)



(https://www.cjoint.com/doc/19_03/ICuvoHdXK0F_arduino3murale.jpg)
Title: Demande aide pour terminer code barrière infrarouge
Post by: BrutusLeCactus on Mar 21, 2019, 05:29 pm
Bonjour/bonsoir à toutes et à tous, je me présente BrutusLeCactus et je me manifeste aujourd'hui car j'ai beaucoup de mal avec le code que je dois finir. Alors oui, pour certains mon problème sera d'une facilité à résoudre ou du moins je l'espère pour eux mais moi n'étant pas très calé en langage arduino, j'ai beaucoup de mal. Je vais donc énoncé mon problème :
Mon code est un code barrière infrarouge et a pour but d'allumer une led lorsque cela affiche 0 dans le moniteur série. J'arrive bien à afficher 1 et 0 (1 quand la barrière n'est pas coupé et 0 quand elle est coupée) mais je n'arrive pas à faire allumé la led quand cela affiche 0. Pouvez vous m'aider s'il vous plait ?
Voici le code :
void __ardublockDigitalWrite(int pinNumber, boolean status)
{
  pinMode(pinNumber, OUTPUT);
  digitalWrite(pinNumber, status);
}

boolean __ardublockDigitalRead(int pinNumber)
{
  pinMode(pinNumber, INPUT);
  return digitalRead(pinNumber);
}



void setup()
{
  Serial.begin(9600);
  __ardublockDigitalWrite(3, HIGH);

}

void loop()
{
  Serial.print(__ardublockDigitalRead(2));
  Serial.println();
}
Title: Faire un programme non-bloquant
Post by: M0tas on Mar 23, 2019, 11:34 am
Bonjour à tous,
j'aurais besoin de rédiger un programme non bloquant. Je m'explique. En fait, je travail actuellement sur un robot qui contient 4 moteurs et 6 capteurs infrarouges. Si par exemple, les trois capteurs infrarouges du devant détectent du vide, alors le robot recule. Si c'est ceux de droite alors il tourne à gauche ect. Le problème, c'est que je me sers de delay. Et donc si mon robot détecte du vide à l'avant, il recule pendant 5 secondes par exemple. Le problème est que du coup, les autres capteurs ne sont plus vérifiés, et si pendant ces 5 secondes, il y a du vide à l'arrière par exemple il va tomber. J'ai essayé avec des boucles while sans succès. Voici un extrait du programme simplifié pour que vous puissiez facilement comprendre le problème :

while(analogRead(infra0)<valA){          //ValA est la variable pour les capteurs infrarouges, infra0 est     
                                                       un des capteur infrarouge
  arret(5000);                                 // Fonction arrêt (le paramètre est un delay)
  droite(5000);                               // Fonction droite (le paramètre est un delay)
  }

while(analogRead(infra1)<valA){
  reculer(5000);
  tourner(5000);
}

while(analogRead(infra2)<valA){
  arret(5000);
  gauche(5000);
}

Et voici la fonction avancer() pour que vous voyez sa structure :

void avancer(int DELAY){
  digitalWrite(sens1AVD,HIGH);  //roue avant droite tourne en avant
  digitalWrite(sens2AVD,LOW);

  digitalWrite(sens1AVG,HIGH);  //roue avant gauche tourne en avant
  digitalWrite(sens2AVG,LOW);

  digitalWrite(sens1ARD,HIGH);  //roue arriere droite tourne en avant
  digitalWrite(sens2ARD,LOW);

  digitalWrite(sens1ARG,HIGH);  //roue arriere gauche tourne en avant
  digitalWrite(sens2ARG,LOW);

  delay(DELAY);
}

Voilà pour le porgramme, j'espère avoir été clair et vous remercie d'avance pour votre aide.

Title: Re: Faire un programme non-bloquant
Post by: lesept on Mar 23, 2019, 11:55 am
Projet scolaire ?

Si tu lis l'anglais, un tuto est dispo ici (https://forum.arduino.cc/index.php?topic=503368.0)
Title: Afficher l'heure lorsque mon moteur s'active
Post by: Liknese on Mar 23, 2019, 12:30 pm
Salut, je travaille sur un projet et j'aimerais pouvoir afficher sur un écran la dernière heure à laquelle mon servomoteur s'est activer (une sorte d'historique ) actuellement j'ai juste réussie à afficher l'heure sur mon écran  voici le programme :

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "RTClib.h"
LiquidCrystal_I2C lcd(0x27,20,2);
RTC_DS1307 RTC;


void setup()

{
 
    Serial.begin(57600);
    Wire.begin();
    RTC.begin();
    RTC.adjust(DateTime(__DATE__, __TIME__));
 
 lcd.init();
 lcd.cursor_on();
 lcd.blink_on();
 lcd.backlight();
 lcd.setCursor(4,0);
 lcd.print("Hello");
 delay(1000); 
 lcd.cursor_off();
 lcd.blink_off();
}

void loop()
{
 DateTime now = RTC.now();
   
    lcd.clear(); //code pour afficher heure et date de la clock (du RTC) sur l'écran LCD
   lcd.print(" ");
   lcd.setCursor(4,1);
  lcd.print(now.hour(), DEC);
    lcd.print(':');
    lcd.print(now.minute(), DEC);
    lcd.print(':');
    lcd.print(now.second(), DEC);
   lcd.setCursor(3,0);
   lcd.print(now.day(), DEC);
    lcd.print('/');
    lcd.print(now.month(), DEC);
    lcd.print('/');
    lcd.print(now.year(), DEC);
    lcd.print(' ');
  delay(1000);
   

   
}

J'aimerai donc savoir comment rajouter le servomoteur et afficher sa dernière heure d'ouverture sur mon écran.
Merci d'avance :)
Title: Re: Afficher l'heure lorsque mon moteur s'active
Post by: hbachetti on Mar 23, 2019, 12:41 pm
Il te suffit de stocker l'heure de démarrage dans une variable :

Code: [Select]

 DateTime start = RTC.now();


Et ensuite tu affiche suivant le même principe.
Il est possible d'écrire une fonction qui prend en paramètre l'heure à afficher, donc un paramètre du type DateTime.
Title: Re: Faire un programme non-bloquant
Post by: dbrion06 on Mar 23, 2019, 04:37 pm
Un exemple simplissime, donc facile à adapter est le second exemple livré avec l'IDE d'Arduino "BlinkWithoutDelay". Le seul effort susceptible de coller une méningite est de lire 2 entrées de menu....
Title: Re: Faire un programme non-bloquant
Post by: M0tas on Mar 23, 2019, 04:53 pm
Alors j'ai déjà essayé d'intégrer la fonction millis, mais je ne suis pas sur de l'avoir bien comprise et ce n'est pas faute d'avoir essayé.
Sur le principe j'ai compris qu'il y a une histoire de chrono, mais je ne vois pas du tout comment l'integrer a mon programme et surtout où. Dans la loop ou dans les fonctions ?
(Et non, il s'agit plus d'un projet personnel que je réalise avec trois autres collègues qu'un projet scolaire).
Merci
Title: Re: Faire un programme non-bloquant
Post by: lesept on Mar 23, 2019, 05:06 pm
Si tes variables temporelles sont globales, tu peux mettre ta gestion du temps où tu veux, loop ou fonctions.

Si tu dois gérer plusieurs chronos liés chacun à une fonction, tu peux mettre chaque gestion dans chaque fonction, ça fait plus propre.

L'idée c'est de tester en début de fonction si le temps est écoulé. Si non, return direct. Si oui, tu exécutes la fonction. Et tu relances ton chrono.
Title: Re: Faire un programme non-bloquant
Post by: M0tas on Mar 23, 2019, 05:32 pm
Est ce que ce serait possible de me montrer comment serait construit le programme en intégrant la fonction millis dans une fonction s'il vous plaît ?
Title: Re: Faire un programme non-bloquant
Post by: lesept on Mar 23, 2019, 06:23 pm
Tu déclares des chronos en global
Code: [Select]
unsigned long chrono1 = 0;
unsigned long chrono2 = 0;
ainsi que des périodes liées à chaque fonction
Code: [Select]
const unsigned long periode1 = 10000;
const unsigned long periode2 = 25000;

Selon ton besoin tu les initialises dans le setup
Code: [Select]
chrono1 = millis();
chrono2 = millis();

Lorsque tu veux agir sur le "truc" numéro 1, avec la fonction 1:
Code: [Select]
void fonction1 () {  // mettre éventuellement des arguments et un type adéquat
  if (millis() - chrono1 < periode1) return;
  chrono1 = millis();

  ... Les instructions liées à la fonction

}
Idem pour les autres fonctions, c'est tout simple...
Title: Bac-Ka-Poux-Bêle 2019
Post by: jfs on Mar 25, 2019, 07:29 am

Pour rappel, ici c'est une poubelle.... pas de réponse dans ce sujet.
Title: Bac-Ka-Poux-Bêle 2019
Post by: jfs on Mar 25, 2019, 08:43 am
This topic has been merged into Bac-Ka-Poux-Bêle 2019 (http://forum.arduino.cc/index.php?topic=359876.0).
Title: Besoin d'aide pour afficher resultat capteur sur page web
Post by: flop33 on Mar 25, 2019, 05:12 pm
bonjour , j'aurais besoin d'aide j'ai fais quelque recherche mais aucun résultat concluant donc voici le programme
Title: Re: Besoin d'aide pour afficher resultat capteur sur page web
Post by: J-M-L on Mar 25, 2019, 05:22 pm
je vous suggère de lire les règles du forum avant que ça finisse au Bac-Ka-Poux-Bêle 2019...
Title: Re: Besoin d'aide pour afficher resultat capteur sur page web
Post by: flop33 on Mar 25, 2019, 05:47 pm
Merci du coseils
Title: Code HC SR04 + Servomoteur
Post by: Marsian on Mar 25, 2019, 08:55 pm
Bonjour à tous,
Débutant dans l'art de la programmation, je me suis récemment acheté un kit de robot Arduino.
Celui ci est composé de 2 plaques de plexi avec 4 moteurs et 4 roues ainsi que d'autres éléments.
Mon problème concerne le servomoteur et le HC SR04 monté dessus.
Le but étant de faire tourner le servo sur 150° de gauche à droite et d'acquérir une distance avec le capteur installé dessus.
Mais voila, le servo fonctionne bien mais le capteur n'acquiert pas les mesures en temps voulu.
(j'utilise le moniteur écran pour afficher les mesures)
J'aimerais savoir ce qui ne va pas dans mon code…
Si quelqu'un peut m'aider ?  :)  :)  :)  :) 
 
Title: Re: Code HC SR04 + Servomoteur
Post by: Marsian on Mar 25, 2019, 09:04 pm
Voici mon code actuel, le problème se situant au niveau du delay ;(
J'ai rajouté un delay(100); après le serial.print mais rien n'y fait ...




#include <Servo.h>
Servo monServomoteur;
const int Trig = 8;
const int Echo = 9;

float duration;
float distance;

void setup() {
 
// Attache le servomoteur à la broche D9
monServomoteur.attach(7);
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
Serial.begin(9600);
}

void loop() {
digitalWrite(Trig, LOW);
delayMicroseconds(2);
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);

duration = pulseIn(Echo, HIGH);
distance = (duration/2) * 0.034;
Serial.print("Distance: ");
Serial.println(distance);
// Fait bouger le bras de 0° à 150°
for (int position = 0; position <= 150; position++) {
 monServomoteur.write(position);
 delay(20);
}

// Fait bouger le bras de 150° à 0°
for (int position = 150; position >= 0; position--) {
 monServomoteur.write(position);
 delay(20);
}

}
Title: variateur de vitesse + gsm
Post by: pj_2926 on Mar 26, 2019, 09:14 am
Bonjour,
Je suis sur un PFE où je dois recevoir l'information d'un variateur de vitesse(triphasé) en utilisant une carte Arduino UNO et un module GSM.
Mon objectif est d'envoyer un SMS qui contient les informations( tension , courant..)de variateur.

Je viens ici chercher un peu d'aide, car je ne sais plus quoi faire... parlant du code Arduino.
Title: PROJET STi2D
Post by: rainism on Mar 26, 2019, 09:26 am
Bonjour, je suis en terminal STi2D spé SIN et j'ai actuellement un problème.


Ma partie dans mon projet est de capter le son, par exemple lorsque tel seuil sonore est dépassé une Led s'allume. Sauf que le problème c'est que le capteur s'active qu'avec le souffle, et il me semble que les valeurs vont de 0 à 1023 alors que mon prof veut qu'on affiche cela en dB.

Un peu d'aide serait sympathique de votre part, et les conseils de même.

Mon capteur : https://www.conrad.fr/p/module-capteur-de-microphone-iduino-1485297-analogique-1-pcs-1485297
Title: Problème de configuration tempo sur une entrée
Post by: FHUBERT on Mar 26, 2019, 06:51 pm
Bonjour a tous,


Je me suis lancé depuis peu sur Arduino, après pas mal de recherche et d'essais mon projet ne se conclu pas!! :(  :(

Je vous explique mes besoins :

Je souhaite fabriquer une trappe pour mes poules, je dispose d'un Module Capteur/Detecteur de luminosité - Photorésistance que j'ai câblé en tout ou rien, deux capteurs mécanique bas et haut et d'un relais 2 canaux pour faire fonctionner mon moteur. 

Le bout de code fonctionne correctement mais je voudrais temporisé mon capteur de luminosité afin de ne pas avoir de détection intempestif.

Pouvez-vous m'aider sur se sujet ?

Voici mon code :

int pincapteurhaut, pincapteurbas,pinMONTER, pinDESCENTE, pinCrepusculaire; // Declaration variables


void setup() {
pincapteurhaut = 2;
pincapteurbas = 7;
pinMONTER = 11;
pinDESCENTE = 13;
pinCrepusculaire = 4;// Etat = 1 quand il fait nuit
Serial.begin(9600);

pinMode(pincapteurhaut,INPUT);
pinMode(pincapteurbas,INPUT);
pinMode(pinMONTER,OUTPUT);
pinMode(pinDESCENTE,OUTPUT);
pinMode(pinCrepusculaire,INPUT);
}

void loop() {

  Serial.println(digitalRead(4)); // Etat du Capteur pour moniteur serie

  boolean etatcapteurhaut = digitalRead(pincapteurhaut);
  boolean etatcapteurbas = digitalRead(pincapteurbas);
  boolean etatCrepusculaire = digitalRead(pinCrepusculaire);
 
 
  if ((!etatcapteurhaut)&&(etatCrepusculaire))
  { digitalWrite(pinMONTER,LOW);
  }
  else
  {digitalWrite(pinMONTER,HIGH);
  }

   if ((!etatcapteurbas)&&(!etatCrepusculaire))
  { digitalWrite(pinDESCENTE,LOW);
  }
  else
  {digitalWrite(pinDESCENTE,HIGH);
  }
  }



Title: Probleme valeurs gyroscope
Post by: Osmeru on Mar 27, 2019, 12:26 pm
Bonjour,

Dans le cadre d un project educatif je dois utiliser un gyroscope.
J utilise le itg 32000.

Une fois un programme simple pour lire les angles en X et Y
Mes valeurs augmentent d environ 2 a 2 sans que je ne touche a quoi que ce soit.

Si vous avez la solution merci de m éclairer.
Title: suiveur solaire verification de programme
Post by: Tomtom974 on Mar 27, 2019, 01:32 pm
Bonjour je suis en première SI j'aimerai que vous m'indiquiez si mon programme comporte des erreurs svp.
C'est un programme de suiveur solaire
#include <Servo.h>
const int entreeCapteur = 0;
int valeurcapteur;

float tension;
float val1;
float val2;

Servo myservo;
int pos = 0;

void setup() {
 monServo.attach(9);
 Serial.begin(9600);
}

void loop() {
valeurcapteur = analogRead(entreeCapteur);
tension = valeurcapteur * 5.0 / 1023;// convertit la valeur analogique en volt
Serial.print("valeurcapteur = ");
Serial.println(valeurcapteur);
Serial.print("tension = ");
Serial.println(tension);
Serial.println(" V");
val1 = tension;

if(val2 = 0)
{
myservo.write(pos +30);//servo se déplace de 30°
val2 = tension;
}

while(val2 > val1); //tant que val2 > val 1 faire
{
  val1 = val2;
  myservo.write(pos +30);
  Val2 = tension;
} else{
  myservo.write(pos -30);
  delay(3600000);// 3,6E+6ms = 1HEURE
 }
}
Title: Re: suiveur solaire verification de programme
Post by: dbrion06 on Mar 27, 2019, 01:43 pm
JE vois deux horreurs
a) votre code n'a pas de balises (des bouts peuvent être mangés, d'une façon ou d'une autre)
b) val2 n'est pas toujours initialisée avent d'être testée...
Title: Re: suiveur solaire verification de programme
Post by: funkTLS on Mar 27, 2019, 01:50 pm
b) val2 n'est pas toujours initialisée avent d'être testée...
faux :smiley-roll:

if(val2 = 0)
Title: Re: suiveur solaire verification de programme
Post by: dbrion06 on Mar 27, 2019, 01:54 pm
C'est encore plus horrible que je ne le craignais...
Title: [Conseil] Recherche programmeur
Post by: pw8888 on Mar 27, 2019, 04:58 pm
Bonjour,
Je suis a la recherche d un etudiant ou programmeur qui pourrais m aider a ecrire un programme simple sur aduino (manque de temps de ma part)
Est ce le bon fourum ou le bon endroit pour poster ma demande ?

merci à tous de votre retour...
P
Title: Re: [Conseil] Recherche programmeur
Post by: lesept on Mar 27, 2019, 05:12 pm
Il y a une section dédiée (https://forum.arduino.cc/index.php?board=26.0) sur le forum, mais en anglais.
Title: Re: [Conseil] Recherche programmeur
Post by: jfs on Mar 27, 2019, 05:17 pm
ça, ça sent le projet d'étudiant qui est en retard et qui panique..... bacapoubel
Title: [HELP] Jeu de reflexe
Post by: victorberson94 on Mar 27, 2019, 05:23 pm
Bonjour,

Dans le cadre de mon cursus scolaire, je dois faire un jeu en arduino.
Voici le jeu que j'ai choisi : plusieurs équations s'affichent sur un panneau de led (32*16). Quand l'équation est correcte, le premier joueur a avoir appuyé sur son bouton gagne, si l'équation est fausse, le joueur qui a appuyé perd. Si personne n'appuie, au bout de quelques secondes, l'équation suivante apparait

J'ai essayé de faire un code qui réalise ce jeu mais ca ne marche pas et je ne comprend pas pourquoi (bien que je pense que l'erreur vienne du millis)

Avant de vous montrer le code, je vous explique les quelques fonctions qu'il utilise:
afficherEquation() affiche une equation sur le panneau de LED
afficherChiffre(x,-1) : désactives les led a l'emlacement x

Code: [Select]

int jeuEquation()             //fonction du jeu Equation
{
 int s1 = 0, s2 = 0, t, r;      
 while(!s1 && !s2)             //tant que aucun des boutons n'est appuyé. Si 1/2 est appuyé, on sort du while
 {
   t=random(0,14);                                             //choix random de l'equation (parmis les 15)
   afficherEquation(EQ[t][0],EQ[t][1],EQ[t][2],EQ[t][3]);      //affichage de l'equation t
   unsigned long temps = millis();
   r=random(3,10);       //on attend un temps random (entre 1 seconde et 4s) pour afficher l'équation suivante
   while(millis()-temps < 400*r)
   {
   s1=digitalRead(J1);                                         //on lit le bouton J1              
   s2=digitalRead(J2);                                         //on lit le bouton J1
   }
   //on desactive toutes les led
   afficherChiffre(1,-1);
   afficherChiffre(2,-1);
   afficherChiffre(3,-1);
   afficherChiffre(4,-1);
   afficherChiffre(5,-1);
   afficherChiffre(6,-1);
   afficherSigne(-1);
 }
 if(s1 && !s2)                                         //si c'est le joueur 1 qui a appuyé
 {
   if(EQ[t][4])                                //on verifie si l'équation etait vraie
   {
     return 1;
     Serial.println("J1 gagne");
     
   }
   else
   {
     return 2;
     Serial.println("J2 gagne");
   }
 }
 else if(!s1 && !s2)
 {
   if(EQ[t][4])
   {
     return 2;
     Serial.println("J2 gagne");
   }
   else
   {
     return 1;
     Serial.println("J1 gagne");
   }
 }
}



Merci d'avance
Title: Questions
Post by: BlackAndWhite on Mar 27, 2019, 06:00 pm
Bonjour a tous,
Je suis en terminale sti2d et j'ai un projet de fin d'année qui consiste à faire un bureau (la salle entière) connecté et sécurisé.
Ma partie consiste a faire un programme avec: un capteur infrarouge PIR, un buzzer, une caméra et des petites leds rouge et verte.
Le but de ce programme est que quand le PIR détecte un mouvement, la led rouge s'allume, le buzzer fonctionne et que la caméra s'allume elle aussi; et que quand il ne se passe rien, la led verte reste tout le temps allumé.
J'ai donc fait un programme sur Arduino, il est certainement faux mais je voudrais savoir ce que vous en pensiez pour corriger les erreurs.
le voici:
PS: j'ai pas réussi a mettre la photo xD et merci d'avoir pris de votre temps

                              //PROGRAMME CAPTEUR PIR ET CAMERA
//**************************************************************************************
int inputPin=6; //definition du capteur sur la pin 6 de l'arduino
int pirState=LOW;
int val=0;
#define ledrouge 5 //definition de la led rouge sur la pin 5 de l'arduino
#define ledverte 4 //definition de la led verte sur la pin 4 de l'arduino
#define camera 3 //definition de la caméra sur la pin 3 de l'arduino
int buzzer=A2;
void setup()
{
pinMode(inputPin, INPUT);
pinMode(ledrouge, OUTPUT);
pinMode(ledverte, OUTPUT);
pinMode(buzzer,OUTPUT);
Serial.begin(9600);
}

void loop()
{
  val= digitalRead(inputPin);     // ON LIT LA VALEUR
if(val ==HIGH)      //SI LA VALEUR EST HAUTE
{
  Serial.println("mouvement detecte");
  digitalWrite(ledrouge,HIGH);     //ALLUMER LED ROUGE
  digitalWrite(ledverte,LOW);    //ETEINDRE LED VERTE
  digitalWrite(camera,HIGH);    //ALLUMER LA CAMERA          ******
  delay(600000);//PENDANT 10 MINUTES OU 15 MINUTES
  tone(buzzer,1000);    //FAIRE SONNER LE BUZZER
  delay(5000);     //SONNER SUR 5 SECONDES
  noTone(buzzer);   //ARRETER LE BUZZER
  delay(1000);    //PENDANT 1 SECONDE
 
}


Title: Re: Questions
Post by: icare on Mar 27, 2019, 06:11 pm
Bonjour,
Il faut mettre le code entre balise code voir les règles épinglées.
Attention : l'instruction delay est bloquante, ce n'est peut être pas ce que tu cherches à faire.
Title: Connecter un arduino en WIFI à son smartphone.
Post by: BBartas on Mar 28, 2019, 09:52 am
Bonjour à vous,

Je cherche actuellement un peu d'aide pour mon projet de terminale SI, nous devons construire une voiture RC qui soit capable de suivre les lignes ( blanches ) d'un terrain d'athlétisme. Ma tache consiste à mettre en oeuvre l'interface permettant la transmission des données.

Le problème est le suivant, je dois faire communiquer un application smartphone avec notre voiture RC, pour ceci nous avons choisit de transmettre les données par WIFI, pour avoir une portée de 130 m, je cherchais donc un moyen de faire communiquer mon téléphone et l'arduino de notre voiture RC. J'ai vu plusieurs solution mais aucune vraiment adaptée à notre problème, si quelqu'un sait comment je pourrais faire j'apprécierais vraiment.

Merci de votre temps, et de vos futures réponses.
Title: Re: Connecter un arduino en WIFI à son smartphone.
Post by: icare on Mar 28, 2019, 10:07 am
Bonjour,
LIRE CECI (http://forum.arduino.cc/index.php?topic=546956.0)
Title: Re: Connecter un arduino en WIFI à son smartphone.
Post by: lesept on Mar 28, 2019, 10:08 am
Bonjour
D'abord, il faut que tu demandes au modo de déplacer ton topic, qui est dans la section des projets terminés : il doit être dans la section principale --> utilise le bouton "report to moderator" situé sous ton message.

Ensuite, lis les messages épinglés en haut du forum Français, tu y verras des instructions qui, si tu les suis, nous aideront à t'aider. Par exemple, quelle carte Arduino utilises-tu, quel(s) shield(s) ?

Enfin, tu peux chercher sur Internet ou sur le forum (la loupe en haut à droite cherche sur le forum uniquement) avec des mots clés comme 'arduino wifi smartphone' tu trouveras des discussions qui te mettront sur la voie. Un exemple de site qui en parle ici (https://zestedesavoir.com/tutoriels/2069/faites-communiquer-votre-arduino-avec-votre-appareil-android/), une autre solution consiste à utiliser Blynk  (https://blynk.io/)ou des solutions similaires
Title: Problème de code
Post by: Zazu51 on Mar 28, 2019, 03:01 pm
Bonjour à tous, je reviens vers vous concernant le projet de Terminale en SI.

En gros, je cherche a obtenir la pression et à l'afficher dans la console. Dans mon code complet, cela ne fonctionne pas, mais en isolant le programme de pression, il marche correctement. Je cherche donc la source de problème mais je ne trouve pas, je demande alors votre aide si vous pouvez le problème.
Bonne journée
Code: [Select]


/*
 *
 */
 #include <SPI.h>
#include <SD.h>
/* accelerometerADXL
 * X to A0
 * Y to A1
 * Z to A2
 * AREF to 3.3
*/
/*
 * MPX4115AP
 * Analaog to A3
 * MPX4115A
 * to A4
 *
 * SD
 * MOSI 11
 * MISO 12
 * SCK 13
 * CS 4
 */
 const int xInput = A0;
const int yInput = A1;
const int zInput = A2;
float pression = A5;
const int chipSelect = 4;


// Raw Ranges:
// initialize to mid-range and allow calibration to
// find the minimum and maximum for each axis   X: 491-528, Y: 489-529, Z: 493-532

int xRawMin = 491;
int xRawMax = 528;

int yRawMin = 489;
int yRawMax = 529;

int zRawMin = 493;
int zRawMax = 532;

// Take multiple samples to reduce noise
const int sampleSize = 10;

 int pinBouton;
int measurePre = A3;
const int relais = 3;
const int ledR = 1;
const int ledV = 2;
unsigned long previousMillisAcc = 0;
const long intervalAcc = 500;
unsigned long previousMillisParra = 0;
const long intervalParra = 10000;
  unsigned long currentMillisParra = millis();
  File fusee;

void setup()
{
      pinBouton=6;
    pinMode(pinBouton,INPUT);
  pinMode(relais, OUTPUT);
  pinMode(ledR, OUTPUT);
  pinMode(ledV, OUTPUT);
  Serial.begin(9600);
  digitalWrite(relais, HIGH);
    analogReference(EXTERNAL);
  Serial.begin(9600);
    // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  Serial.print("Initializing SD card...");

  // see if the card is present and can be initialized:
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    // don't do anything more:
    return;
  }
  Serial.println("card initialized.");
    fusee = SD.open("donnees.txt", FILE_WRITE); //on peut en ouvrir qu'un à la fois //

  if (fusee) { //si le fichier a bien été ouvert :
    fusee.print("X    ,Y    ,Z    , ");
    fusee.println("PressionStat    ,PressionTot");
    fusee.close();
    Serial.println("Fait");
  } else { // sinon :
    Serial.println("Erreur lors de l'ouverture de test.txt");
}
}
void donne()
{
    int xRaw = ReadAxis(xInput); //lecture donnée accéléromètre
  int yRaw = ReadAxis(yInput);
  int zRaw = ReadAxis(zInput);
  {
    Serial.print("Raw Ranges: X: ");
    Serial.print(xRawMin);
    Serial.print("-");
    Serial.print(xRawMax);
   
    Serial.print(", Y: ");
    Serial.print(yRawMin);
    Serial.print("-");
    Serial.print(yRawMax);
   
    Serial.print(", Z: ");
    Serial.print(zRawMin);
    Serial.print("-");
    Serial.print(zRawMax);
    Serial.println();
    Serial.print(xRaw);
    Serial.print(", ");
    Serial.print(yRaw);
    Serial.print(", ");
    Serial.print(zRaw);
   
    // Convert raw values to 'milli-Gs"
    long xScaled = map(xRaw, xRawMin, xRawMax, -1000, 1000);
    long yScaled = map(yRaw, yRawMin, yRawMax, -1000, 1000);
    long zScaled = map(zRaw, zRawMin, zRawMax, -1000, 1000);
 
    // re-scale to fractional Gs
    float xAccel = xScaled / 1000.0;
    float yAccel = yScaled / 1000.0;
    float zAccel = zScaled / 1000.0;
 
 
    Serial.print(" :: "); // affichage donnée accéléromètre
    Serial.print(xAccel);
    Serial.print("G, ");
    Serial.print(yAccel);
    Serial.print("G, ");
    Serial.print(zAccel);
    Serial.println("G");
   
   
  delay(500);
  }
}
int ReadAxis(int axisPin)
{
  long reading = 0;
  analogRead(axisPin);
  delay(1);
  for (int i = 0; i < sampleSize; i++)
  {
    reading += analogRead(axisPin);
  }
  return reading/sampleSize;
}

void parachuteSecours() // timer de déploiment en cas de non fonctionnement du déclenchement auto
{

//EN COURS

  }
 

void pressiond()
{ //lecture pression
Serial.println(analogRead(pression));
}
void loop()
{
  donne();
  Serial.println(analogRead(pression));

  boolean etatBouton=digitalRead(pinBouton); //debut timer parachute
  if (etatBouton == 0)
  {
     parachuteSecours();
     
  }

}
,
Title: Re: Problème de code
Post by: funkTLS on Mar 28, 2019, 03:49 pm
cela ne fonctionne pas
Ah oui, encore ce problème.. la dernière fois je l'avais corrigé en cherchant "cela ne fonctionne pas" sur Google :D

La bonne nouvelle, c'est que vous avez un code qui "marche" à un moment, donc en y allant pas-à-pas, en mettant des traces dans le code, identifiez l'endroit où ça passe de "ça marche" à "ça marche pu"..
Title: Re: Problème de code
Post by: fdufnews on Mar 28, 2019, 04:44 pm
Dans mon code complet, cela ne fonctionne pas, mais en isolant le programme de pression, il marche correctement.
C'est-à-dire.
Tu ne peux pas expliquer ton problème c'est quand même pas compliqué de détailler le comportement attendu et le comportement constaté d'un petit bout de programme.
Qu'est-ce qu'il se passe?
Qu'est-ce que tu vois et qui ne devrait pas arriver?
Qu'est-ce que tu ne vois pas et qui devrait arriver?
Est-ce qu'un calcul retourne un résultat erroné?

Et puis alors, le titre du post. Merci pour la clarté. Imagines-toi que 95% des gens qui viennent ici on un problème de code. Si tout le monde mettait le même titre que toi comment on s'y retrouverait?
Title: Re: Problème de code
Post by: jfs on Mar 28, 2019, 04:47 pm
En général 50% des demandeurs viennent pour un problème de code et les 50% restant pour un problème de connectiques.... si tout le monde mettaient le même titre ça serait un peu bordélique....

Donc on édite son premier message et on change le titre du sujet.

Sans ce changement et au prochain message de l'auteur du sujet >>>> Bak à Poux Bêle 2019


Edit : grillé par fdunews  :smiley-mr-green:

Et puis alors, le titre du post. Merci pour la clarté. Imagines-toi que 95% des gens qui viennent ici on un problème de code. Si tout le monde mettait le même titre que toi comment on s'y retrouverait?
on a pas les mêmes statistiques  :D
Title: Re: Problème de code
Post by: Zazu51 on Mar 28, 2019, 04:49 pm
Lorsque je branche le capteur de pression à ma carte avec le code basique, j'obtiens des valeur d'environ 800, ce qu'il me faut. Quand je copie le code dans le code complet, la valeur ne change pas et reste a 1023. Donc j'en déduis qu'il y a un problème mais je ne sais pas où.  Il n'y a aucun calcul, juste du Serial.println(analogRead(pression));
Je ne comprends pas où ça pêche, puisqu'il n'y a que ça qui ne marche pas!
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: fdufnews on Mar 28, 2019, 06:45 pm
on a pas les mêmes statistiques  :D
J'avoue j'ai utilisé le pif
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: jfs on Mar 28, 2019, 06:47 pm
J'avoue j'ai utilisé le pif
pareil.... mais on a pas du utiliser le même  :D
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: lesept on Mar 29, 2019, 11:03 am
Bakapou
Bakapou
Bakapou...
Bêle !!


ça ressemble à du Kamoulox (https://www.youtube.com/watch?v=vv4s5Y2dO8I)...
Title: Accéléromètre MPU6050
Post by: adammarechal on Mar 29, 2019, 05:48 pm
Bonjour à tous,
Au lycée nous devons faire un projet et le notre porte sur une trottinette à assistance électrique. Sans rentrer dans les détails, il nous faut les données d'accélération sur un axe "horizontale" x ou y avec l'accéléromètre mpu6050. Nous avons déjà trouvé des codes qui nous donnent des valeurs mais elles sont beaucoup trop grandes (25000 ?!) et surtout on ne sait pas à quoi elles correspondent. Et on ne sait même pas si notre connexion avec l'arduino est bonne !
Donc si vous avez déjà utiliser ce type de capteurs ça serait super cool de nous aider.
Merci d'avance 
Title: controle d'une pompe à vide
Post by: soheiib on Mar 29, 2019, 06:13 pm
bonjour , je suis en train de travailler sur projet , j'utilise une pompe a vide qui aspire avec une alimentation 12V et relâche quand on ferme le 12V ( qui est mon objectif )   ( je fais les expériences manuellement ) , moi je veux faire ça automatiquement cad comment puis j'alimente le 12V et l'éteindre automatiquement en utilisant l'arduino ou un composant Electronique ! j'att vos propositions
Title: Re: controle d'une pompe à vide
Post by: jfs on Mar 29, 2019, 06:35 pm
j'att vos propositions
Je pense que tu n'as pas saisi le sens de ce forum.... tu amènes des propositions et tu recevras l'aide pour élaguer le champs des possibles
Title: alimentation 12v
Post by: soheiib on Mar 29, 2019, 07:05 pm
bonjour , je suis en train de travailler sur projet , j'utilise une pompe a vide qui aspire avec une alimentation 12V et relâche quand on ferme le 12V ( qui est mon objectif )   ( je fais les expériences manuellement ) , moi je veux faire ça automatiquement cad comment puis j'alimente le 12V et l'éteindre automatiquement ( j'utilise arduino MEGA )  avec un composant Electronique ou un circuit  ! j'att vos propositions
Title: couper et allumer l'alimentation 12v
Post by: soheiib on Mar 29, 2019, 08:22 pm
onsoir , je suis en train de travailler sur projet , j'utilise une pompe a vide qui aspire avec une alimentation 12V et relâche quand on ferme le 12V ( qui est mon objectif ) , moi je veux faire ça automatiquement cad comment puis j'alimente le 12V et l'éteindre automatiquement avec un composant Electronique ou un circuit ( j'utilise arduino MEGA ) !
j'att vos propositions
Title: Programmation d'un brumisateur
Post by: ElCognot7 on Mar 30, 2019, 12:34 pm
Bonjour à tous je suis en terminale STI2D et j'ai pour projet de réaliser une serre autonome je me charge de la partie programmation sauf que étant nouveau dans ce domaine je n'y connais pas grand chose.
Là partie qui sera automatisé sera une pompe relié à un brumisateur qui s'activera quand il fera trop chaud dans la serre.
Pour cela j'ai a ma disposition un capteur dht22 et une Arduino Uno.
J'aimerais que quelqu'un m'aide pour le programme car je n'y arrive pas.
Merci en attendant une réponse positive de l'un d'entre vous.
Title: Re: Programmation d'un brumisateur
Post by: Artouste on Mar 30, 2019, 12:46 pm
Bonjour à tous je suis en terminale STI2D et j'ai pour projet de réaliser une serre autonome je me charge de la partie programmation sauf que étant nouveau dans ce domaine je n'y connais pas grand chose.
Là partie qui sera automatisé sera une pompe relié à un brumisateur qui s'activera quand il fera trop chaud dans la serre.
Pour cela j'ai a ma disposition un capteur dht22 et une Arduino Uno.
J'aimerais que quelqu'un m'aide pour le programme car je n'y arrive pas.
Merci en attendant une réponse positive de l'un d'entre vous.
:smiley-mr-green:

Tic !  Tac !
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: jfs on Mar 30, 2019, 01:23 pm
:smiley-mr-green:

Tic !  Tac !

Boooooom  :D
Title: Fusionner 2 programmes arduino
Post by: Ywars on Mar 31, 2019, 11:58 am
Bonjour à tous,

je rencontre un problème pour fusionné donc 2 programmes arduino. Le premier programmes consiste a ouvrir et fermée une serrure grâce a un capteur RFID 125hz , l'autre consiste a ouvrir et fermée cette serrure avec un module Serial bluetooth 3.0 . Les deux programmes fonctionnes séparément mais ensemble cela pose un problème. Je vous met teste de fusion qui ne fonction pas pouvez vous m'éclairé ?
Title: Re: Fusionner 2 programmes arduino
Post by: icare on Mar 31, 2019, 12:35 pm
Bonjour,
Fait une recherche sur le forum, sujet récurrent.
Title: Re: Fusionner 2 programmes arduino
Post by: Ywars on Mar 31, 2019, 12:39 pm
Cela fait 10 minutes que je cherche et je ne trouve rien pouvez vous me donné un lien ou la solution si vous la connaissez merci.
Title: Re: Fusionner 2 programmes arduino
Post by: 68tjs on Mar 31, 2019, 12:51 pm
La solution est simple : réfléchir sur le rôle des fonctions setup() et loop().

Quote
Cela fait 10 minutes que je cherche et je ne trouve rien.
J'espère que tu ne crois pas qu'on va tomber dans le panneau.

Comme tu l'a dit Icare : recherche sur le forum :
Comme tu n'a pas l'air dégourdit :
1 : cliquer sur la loupe en haut et à droite de cette page , je précise située dans le bandeau de couleur bleue.
2 : il écrire la phrase suivante : "fusionner deux programme arduino"
3: Ne pas oublier d'appuyer sur la touche Entrée soit du clavier soit du pavé numérique, elles font la même chose.
4: MIRACLE tu tombes sur une page gogole avec des dizaines de résultats limités à ce forum


Ne nous dis pas que tu as fais beaucoup d'effort mais plutôt que tu cherches une réponse toute faite pour ton projet pour le bac.
Title: Re: Fusionner 2 programmes arduino
Post by: Ywars on Mar 31, 2019, 01:53 pm
J'ai essayé avec cette forme la
Code: [Select]

// déclaration des variables programme 1
// déclaration des variables programme 2

void setup()
{
   setup1();
   setup2();
}

void loop()
{
  loop1();
  loop2();
}

void setup1()
{
   // setup du programme 1
   
 
     
}
void setup2()
{
// setup du programme 2
 


 
}

void loop1()
{
   // loop du programme 1
   
   
   
}
void loop2()
{
// loop du programme 2

}


j'ai d'abord tester mon programme rfid dans le 1 il fonctionne je l'est enlever et est mis le code du module bluetooth dans le 2 il fonctionne aussi en revanche quand je met les deux sa ne marche toujours pas voici le résultat
Code: [Select]
// déclaration des variables programme 1
#include <RFID125.h>
#include <SoftwareSerial.h>
RFID125 monRFID;
int solenoidePin = 6;






// déclaration des variables programme 2

SoftwareSerial mySerial(2,3);
int Blue = 0 ;





void setup()
{
   setup1();
   setup2();
}

void loop()
{
  loop1();
  loop2();
}

void setup1()
{
   // setup du programme 1
   monRFID.brancher(8,9);
   monRFID.ecrireCode("7147179");
   pinMode( solenoidePin, OUTPUT );
   Serial.begin(9600);
 
     
}
void setup2()
{
// setup du programme 2
  pinMode( solenoidePin, OUTPUT );
  mySerial.begin(9600);
  Serial.begin(9600);


  Blue = 3 ;
}

void loop1()
{
   //loop du programme 1
   if (monRFID.testerCode(monRFID.lireCode()))
  {
    digitalWrite( solenoidePin, HIGH );
    delay(10000);
  }
  else
  {
   digitalWrite( solenoidePin, LOW );
  }
   
   
}
void loop2()
{
// loop du programme 2
Blue = mySerial.read() ;
  if (( ( Blue ) == ( 1 ) ))
  {
    digitalWrite( solenoidePin, HIGH );
  }
  if (( ( Blue ) == ( 2 ) ))
  {
    digitalWrite( solenoidePin, LOW );
  }
}


je ne comprend pas
Title: Re: Fusionner 2 programmes arduino
Post by: 68tjs on Mar 31, 2019, 02:00 pm
C'est qu'il y a des incompatibilités entre les deux programmes.
Remède : il faut réfléchir avant de copier bêtement.

Info : je n'aide pas le projets bac après le 1er mars, c'est trop tard pour faire du travail constructif, il ne reste plus que l'assistanat  et cela je m'y refuse.
Pas de chance il ne fallait pas attendre le coup de pied au cul donné par le prof à la revue de projet.
Title: Re: Fusionner 2 programmes arduino
Post by: Ywars on Mar 31, 2019, 02:13 pm
Qu'es que sa vous coûte de me répondre ma revue est dans 1 mois j'ai encore le temps donc s'il vous plait vous êtes censé aider les gens pas leurs dire c'est trop tard ... de plus se n'est pas le plus compliquée des programmes ..
Title: Re: Fusionner 2 programmes arduino
Post by: icare on Mar 31, 2019, 02:42 pm
Re,
Qu'es que sa vous coûte de me répondre ma revue est dans 1 mois j'ai encore le temps donc s'il vous plait vous êtes censé aider les gens pas leurs dire c'est trop tard ... de plus se n'est pas le plus compliquée des programmes ..
Un petit effort sur l'orthographe et la grammaire serait un plus.
Toutes ces interventions coûtent du temps et nous sommes tous des bénévoles dont on est censé à rien.
Title: Re: Fusionner 2 programmes arduino
Post by: 68tjs on Mar 31, 2019, 02:49 pm
Quote
vous êtes censé aider les gens
Je ne suis en rien censé d'aider.
Figures toi que je suis totalement libre de dire ce que je pense.

Et tu viens seulement de reconnaître que c'est un projet bac alors que les Règles du forum OBLIGENT à l'annoncer.

Donc en plus de ne pas vouloir faire d'effort (il suffit de lire les réponses à la recherche qui t'as été indiquée pour avoir la réponse) tu es un tricheur.

Je sens ce sujet bien parti pour le  Bar et le "Bak Ka Poux Belle 2019" car vois tu depuis plus de 5 ans que nous sommes envahis par des gens comme toi qui veulent se faire faire leur projet bac la limite d'acceptance est dépassée.
Title: Re: Fusionner 2 programmes arduino
Post by: Ywars on Mar 31, 2019, 02:55 pm
Je ne savez pas qu'il fallait annoncé que c'était un projet de bac et puis cela ne change en rien la situation je veux juste de l'aide pour fusionné deux programme j'ai même essayer plusieurs solution comme je l'ai mis plus haut sa ne marche pas et vous dites que je triche que je ne fais pas d'effort ??
Title: Re: Fusionner 2 programmes arduino
Post by: 68tjs on Mar 31, 2019, 02:59 pm
Quote
Je ne savais pas qu'il fallait annoncer que c'était un projet de bac
Un message épinglé intitulé "Règles du forum francophone" c'est du pipi de chat ?
Title: Re: Fusionner 2 programmes arduino
Post by: Ywars on Mar 31, 2019, 03:19 pm
Est-ce que tu pourrais me répondre au moins sur cette question ? Est - il possible d'avoir ces deux lignes de code dans un programme ?

SoftwareSerial mySerial(2,3);

monRFID.brancher(8,9);
Title: lancement de musiques mp3 sur arduino en cliuqnat sur un bouton poussoir
Post by: dom5962 on Mar 31, 2019, 03:33 pm
Bonjour,
je cherche à réaliser une sorte de boite à musique où quand on appuie sur un bouton et qu'on reste appuyé dessus une musique se lance au hasard parmi 12 musiques. Avec un arduino.
avez-vous déjà effectué ce type d'objet ?
d'avance merci si vous pouvez m'aider à trouver un code et m'expliquer le montage. Je suis novice
Title: probleme de compilation
Post by: zsallam on Apr 01, 2019, 01:22 am
j ai un probleme avec une carte uno wavgat et voila le message Arduino : 1.8.5 (Windows 7), Carte : "WAVGAT UNO R3"

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\SAMSUNG\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\SAMSUNG\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\SAMSUNG\Documents\Arduino\libraries -fqbn=WAV:avr:lardu_328p -ide-version=10805 -build-path C:\Users\SAMSUNG\AppData\Local\Temp\arduino_build_51593 -warnings=all -build-cache C:\Users\SAMSUNG\AppData\Local\Temp\arduino_cache_609623 -prefs=build.warn_data_percentage=75 -verbose C:\Users\SAMSUNG\Documents\Arduino\arosage_automatique\arosage_automatique.ino

Erreur de compilation pour la carte WAVGAT UNO R3
Title: compteur d'eau/comptage des impulsions
Post by: etudiantBTSSN76 on Apr 01, 2019, 11:35 am
bonjour a tous, j'essaye de lire les impulsions de ce compteur d'eau:

https://www.amazon.fr/D%C3%A9bitm%C3%A8tre-sortie-dimpulsion-Compteur-G%C3%A9n%C3%A9rateur/dp/B00PHGLH86/ref=sr_1_fkmrnull_1?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=D%C3%A9bitm%C3%A8tre+avec+sortie+d%27impulsion+Compteur+d%27eau+G%C3%A9n%C3%A9rateur+de+d%C3%A9bit+d%27eau+1+Imp.%2FL&qid=1554111131&s=hi&sr=1-1-fkmrnull

mais un petit problème est survenu car je lis deux impulsions lors des test avec ce code

// comptage compteur d'eau

const byte interruptPin = 2; //broche compteur d'eau
unsigned long compteur = 0;
long dernieremesure = 0;
long actualisation = 500;  // delai
unsigned long TotalLitres;

void setup() {
  Serial.begin(9600);
  pinMode(interruptPin, INPUT_PULLUP);
  digitalWrite(interruptPin, HIGH);
  attachInterrupt(digitalPinToInterrupt(interruptPin), comptage, FALLING);
  Serial.println("Nombre d'impulsions");
  //Serial.print("\t");
}

void loop() {
  // compte le total d'impulsions donc le nombre de litres
  if ( (millis() - dernieremesure) > actualisation) {
  Serial.print(compteur);
  Serial.println(" Litre est passé ");

  TotalLitres = compteur;
  Serial.print("Total en Litres :  ");
  Serial.print(TotalLitres);
  Serial.println("  Litres");
  delay(3000);


   
  dernieremesure = millis();
}
}
void comptage()
{
  compteur++;
}

Title: Re: compteur d'eau/comptage des impulsions
Post by: kamill on Apr 01, 2019, 11:46 am
Bonjour,

Mets ton code entre balises (http://forum.arduino.cc/index.php?topic=315372.msg3728418#msg3728418).
Title: Re: compteur d'eau/comptage des impulsions
Post by: lesept on Apr 01, 2019, 01:37 pm
Tu affiches toutes les 500 ms, à cause de ce test:
Code: [Select]
if ( (millis() - dernieremesure) > actualisation) {

Tu devrais afficher uniquement lorsque le compteur est incrémenté : pour cela tu conserves la valeur précédente dans une variable et, au lieu de tester le temps passé, tu testes si la valeur courante est différente de la valeur précédente. Si oui, tu affiches et tu mets à jour la valeur précédente
Title: GSM BandManagment
Post by: Valentin12072001 on Apr 01, 2019, 02:16 pm
Bonjours je suis en classe de Terminal et j'ai un problème quand je connecte mon GSM avec ma carte Arduino Uno je transfert le code BandManagment , j'ouvre le moniteur (Au par avant j'ai mis ma carte SIM dans le GSM) Sa me marque restarting modem donc normal puis parès je tappe sur 4 dans le moniteur comme je suis en Europe, Puis après ca me met l'erreur : " Error while changing band"puis ca me demande de recommencer la manip.
Title: aide pour envoyé des donnes d'une application vers arduino
Post by: HDUPFE on Apr 01, 2019, 06:09 pm
Bonjour,

je suis un étudiant en Ingénieur électromécanique, et dans le cadre de mon stage il m'est demandé de programmer un poste d'insertion des fils dans des connecteurs.

Mon maître de stage désire que ce poste puisse :

- lire des donnes d'un fichier à l'aide d'une application crée par visual C#
- envoyer les donnes lu vers arduino qui va commandé des LEDs qui correspond à ce fichier

Ma question est la suivante,

je réussi a avoir les données sur visual c#.

Mais... comment pouvoir envoyer vers Arduino qui est lu sur visual c# ?

Pour obtenir ce que l'arduino allume les leds et faire des operations

Je possède une carte Arduino UNO et 36 LEDs commande suivant le fichier qu'on va selectionnne

Merci,

s'il vous plaît,je me suis bloqué aider moi .
Title: arduino pcf8574 keypad code d'accès
Post by: ak78721 on Apr 01, 2019, 08:06 pm
Bonjour à tous !

j'ai un gros soucis, j'aimerai créer un code d'accès à 4 chiffres grâce à un clavier matriciel 4*4 relié en i2c grâce au PCF8574. Mais malheureusement cela ne marche pas… Aidez moi SVP merci d'avance.

Voici le code ci-dessous.


/* Sources:
http://jp79dsfr.free.fr/_Docs%20et%20infos/Elec%20_%20Arduino%20-%20Bus%20I2c.pdf
https://www.arduino.cc/en/reference/wire
http://www.ti.com/lit/ds/symlink/pcf8574.pdf
https://www.arduino.cc/reference/en/#variables
https://www.arduino.cc/reference/en/language/structure/control-structure/switchcase/
Les broches A0, A1 et A2 sont sur 0V
2 résistances d etirage sur SDA et SCL (1k)
*/

#include <Wire.h>
//const uint8_t AddPCF1 =0x27;                        // Declaration Adresse  PCF8574
//const uint8_t AddPCF1 =0x40;                        // Declaration Adresse  PCF8574
const unsigned int AddPCF1 = 0x38;                        // Declaration Adresse  PCF8574
unsigned long ValTemps;
unsigned long CptClavier;
// Variables Scan clavier
unsigned int ValClavier=0;
int led = 9;

  int myPins[] = {1, 16, 256, 2};    

void setup() {  // ----------------- Initialisation  
   Wire.begin();  
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}
void loop() {  // ------ Boucle principale
 ValTemps=millis();
 if (ValTemps-CptClavier > 100){                   // Exécuté toutes les 100ms  
   CptClavier=ValTemps;
   uint8_t CptScan=0x80;    // ----------------------- Scan clavier
   ValClavier=0;
   while(CptScan !=0x08) {
     
     Wire.beginTransmission(0x38);              // Mise a l'état bas colonne
     Wire.write(~CptScan);              
     Wire.endTransmission();
     Wire.requestFrom(0x38,1);                  // Lecture ligne
     
     while (Wire.available()) {
       //Serial.println(CptScan);
       ValClavier=ValClavier << 4;                 // Décalage et enregistrement
       ValClavier |=~Wire.read() & 0x0F;           // lecture clavier
     }
     
     CptScan = CptScan >> 1;
 
 }
   Serial.print(ValClavier);                 // Affichage résultat
   
  switch (ValClavier)
 {  

   if (String ValClavier = case 1: + case 16: ){
          Serial.print("valide");

   } else {
                Serial.print("invalide");

   }

    case 1:
    delay(600);        
    Serial.print("1");
    break;
   
    case 16:
    delay(600);        
    Serial.print("2");
    break;
   
    case 256:
    delay(600);        
    Serial.print("3");
    break;

    case 2:
    delay(600);        
    Serial.print("4");
    break;
   
    case 4096:
    delay(600);        
    Serial.print("A");
    break;
   
    case 32:
    delay(600);        
    Serial.print("5");
    break;
   
    case 512:
    delay(600);        
    Serial.print("6");
    break;
   
    case 8192:
    delay(600);        
    Serial.print("B");
    break;
   
    case 4:
    delay(600);        
    Serial.print("7");
    break;
   
    case 64:
    delay(600);        
    Serial.print("8");
    break;
   
    case 1024:
    delay(600);        
    Serial.print("9");
    break;
   
    case 16384:
    delay(600);        
    Serial.print("C");
    break;
   
    case 8:
    delay(600);    
    Serial.print("*");
    break;
   
    case 128:
    delay(600);    
    Serial.print("0");
    break;
   
    case 2048:
    delay(600);  
    Serial.print("#");
    break;
   
    case 32768:
    delay(600);    
    Serial.print("D");
    break;
*/  
      default:
    break;

        if (ValClavier == myPins) {
          Serial.print("valide");
   } else {
                Serial.print("invalide");

   }
   }
 }
}
Title: Re: arduino pcf8574 keypad code d'accès
Post by: al1fch on Apr 01, 2019, 08:19 pm
Bonsoir

A lire , y compris la règle 6 et la partie "Projets pour le Bac et autres examens' (http://forum.arduino.cc/index.php?topic=546956.0)
Title: Besoin d'un code pour baromètre
Post by: aadiams90 on Apr 02, 2019, 11:09 am
Bonjour,

Je suis élève en terminale s et je suis en SI, et je bosse actuellement sur mon projet qui serait de concevoir un fauteuil roulant qui se commande par le souffle. J'ai à disposition un capteur barométrique HP206C à connexion I2C, mais avec mon groupe, on a du mal à écrire un bon programme. J'aurais besoin de votre aide s'il vous plaît. J'aimerais réaliser un programme qui me permettrait de faire avancer, reculer, arrêter ... le fauteuil selon la durée du souffle ou selon la pression. Je suis pris par le temps et j'aurais vraiment besoin d'aide. Est-ce qu'une âme charitable pourrait m'aider, ou au moins mettre sur la piste ?
Merci d'avance.
Title: Besoin d'aide pour petit code
Post by: aadiams90 on Apr 02, 2019, 11:23 am
Bonjour,

Je suis élève en terminale s. Je suis actuellement sur un projet et j'aurais besoin de votre aide. Je suis vraiment nul en codage et il me faut un code pour me permettre d'allumer deux leds : en fait avec un bouton poussoir, selon la durée de pression sur le bouton, il faudrait que :
- la première led s'allume,
- la seconde led s'allume,
- les deux leds s'allument,
- les deux s'arrêtent.
Je suis pris par le temps et j'aurais vraiment besoin d'aide. Est-ce qu'une âme charitable pourrait me venir en aide, ou au moins me mettre sur la piste ?
Merci d'avance.
Title: Code pour baromètre grove HP206C
Post by: aadiams90 on Apr 02, 2019, 11:57 am
Bonjour,

Je suis élève en terminale s. Je bosse sur un projet et j'aurais besoin d'aide pour un code : j'ai à disposition un baromètre grove HP206C et j'aimerais grâce au souffle, pouvoir commander 2 moteurs. Si cette version est compliquée et qu'il n'y a pas de solution, le même code avec un bouton poussoir me suffirait. Il Faudrait que :
- le premier moteur fonctionne;
- le deuxième moteur fonctionne;
- les deux moteurs fonctionnent;
- les deux moteurs s'arrêtent.
Merci d'avance pour votre aide.
Title: Re: Code pour baromètre grove HP206C
Post by: dbrion06 on Apr 02, 2019, 12:34 pm
Deux questions
a) est ce que, dans le cadre de projets scolaires, le code est bienvenu?
b)Est ce que l'ajout de commentaires au code est bienvenu (j'espère que oui)
Il serait plus facile que vous postiez votre code, en décrivant ce que vous attendez, les tests déjà faits et ce qui vous déçoit. Pour éviter la destruction de -grandes - portions de code, et la saturation d'un bak à poux bêles -une version de l'enfer- il est sain de protèger le code par des balises, expliquées dans les conditions d'emploi du forum.
Title: Re: Besoin d'aide pour petit code
Post by: dbrion06 on Apr 02, 2019, 01:12 pm
La charité bien ordonnée commence par une suspicion légitime vis à vis de double posts; Savoir où vous en êtes  dans votre projet permettrait de determiner:

a) s'il faut tout écrire, en échange, bien sûr, du diplôme et de l'arduino...

b) s'il y a un petit détail qui bloque (et là, ce serait de la cruauté stupide de ne pas le résoudre).
Title: Re: Besoin d'un code pour baromètre
Post by: dbrion06 on Apr 02, 2019, 01:17 pm
Il y a un proverbe chinois qui dit "jamais deux sans trois".

Face à un triple post, personne ne peut vous aider (l'aide va se disperser et devenir incohérente)
Title: Re: Besoin d'un code pour baromètre
Post by: 68tjs on Apr 02, 2019, 01:27 pm
Quand on provoque on gagne le "Bak a Poux belle" .
Title: Re: Besoin d'aide pour petit code
Post by: lesept on Apr 02, 2019, 02:05 pm
Allez, je suis charitable : je réponds ici avant que ça parte au bakapoub'.

Pour faire ça, tu dois détecter l'appui sur le bouton. A partir de cette détection, tu lances un chrono et tu vérifies que tu passes les durées correspondant à led1, led2, les 2 leds, et extinction.

D'abord initialiser le bouton dans le setup :
Code: [Select]
pinMode(buttonPin, INPUT_PULLUP);Dans cette configuration, un appui sur le bouton correspond à un état LOW.

Ensuite, dans la loop :

Pas testé, je te laisse faire...
Title: Re: Besoin d'aide pour petit code
Post by: dbrion06 on Apr 02, 2019, 02:14 pm
Et on peut faire la même chose avec un baromètre (un souffle dessus est une surpression par rapport à la pression précédente: on change donc d'état si la pression est > (pression précédente + seuil))
Ceci implique d'avoir réussi à décoder le baromètre TWI, muni de logiciels de demo lisibles -demander à google "hp206c github arduino"   qui est dans les 2 autres posts (et qui sert à piloter un fauteuil roulant: tirer sur les fauteuils roulants est interdit par la convention de Genève: si vous n'habitez pas trop loin de la Suisse, cela évite le bac -à poux...- )
Title: compteur d'eau
Post by: etudiantBTSSN76 on Apr 02, 2019, 02:17 pm
bonjour a tous, j'essaye de lire les impulsions de ce compteur d'eau:

https://www.amazon.fr/D%C3%A9bitm%C3%A8tre-sortie-dimpulsion-Compteur-G%C3%A9n%C3%A9rateur/dp/B00PHGLH86/ref=sr_1_fkmrnull_1?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=D%C3%A9bitm%C3%A8tre+avec+sortie+d%27impulsion+Compteur+d%27eau+G%C3%A9n%C3%A9rateur+de+d%C3%A9bit+d%27eau+1+Imp.%2FL&qid=1554111131&s=hi&sr=1-1-fkmrnull

mais un petit problème est survenu car je lis deux impulsions lors des test avec ce code

// comptage compteur d'eau

const byte interruptPin = 2; //broche compteur d'eau
unsigned long compteur = 0;
long dernieremesure = 0;
long actualisation = 500;  // delai
unsigned long TotalLitres;

void setup() {
  Serial.begin(9600);
  pinMode(interruptPin, INPUT_PULLUP);
  digitalWrite(interruptPin, HIGH);
  attachInterrupt(digitalPinToInterrupt(interruptPin), comptage, FALLING);
  Serial.println("Nombre d'impulsions");
  //Serial.print("\t");
}

void loop() {
  // compte le total d'impulsions donc le nombre de litres
  if ( (millis() - dernieremesure) > actualisation) {
  Serial.print(compteur);
  Serial.println(" Litre est passé ");

  TotalLitres = compteur;
  Serial.print("Total en Litres :  ");
  Serial.print(TotalLitres);
  Serial.println("  Litres");
  delay(3000);


   
  dernieremesure = millis();
}
}
void comptage()
{
  compteur++;
}

Title: Re: compteur d'eau
Post by: CelticLord on Apr 02, 2019, 02:37 pm
Bonjour, evite d utiliser delay qui est blocante, encore moins dans ton timer millis()
Title: Re: compteur d'eau
Post by: kamill on Apr 02, 2019, 02:55 pm
Bonjour,

Mets ton code entre balises (http://forum.arduino.cc/index.php?topic=315372.msg3728418#msg3728418) avant qu'il parte de nouveau à la poubelle.
Title: Envoyer un dossier .txt d'un sd a un serveur
Post by: Yohann972 on Apr 02, 2019, 03:30 pm
Bonjour,
Je dois envoyer un ficher .txt (que j'ai stocker sur un carte sd avec l'Arduino) a un serveur (avec des ftp par exemple).
Je ne vois pas comment faire. Si quelqu'un pourrait m'aider se serait cool  :D .
Title: Problème code Arduino
Post by: Rudsteen on Apr 02, 2019, 05:33 pm
Bonjour, j'ai un problème avec le programme que j'ai fais et je ne trouve pas d'où il vient.


Le code :

Code: [Select]

#include <Servo.h>

#define PLAQUE_DEPLACEE 500
#define CHAT_SERVI 1200
#define MOTEUR 5
#define RFID 0
#define CAT 0
#define JEUNE 86400000
#define NOURIR 0

Servo myservo;
long tempsPlaque;
long tempsChat1;
long tempsChat2;
long tempsChat3;
long tempsChat4;
long tempsChat5;
unsigned long Deplacement = 0;


#include <SPI.h> 
#include <MFRC522.h> 
#define SS_PIN 10 
#define RST_PIN 9 
MFRC522 rfid(SS_PIN, RST_PIN); 
MFRC522::MIFARE_Key key; 
int code[] = {52,255,131,31}; 
int code1[] = {011,56,240,013}; 
int code2[] = {137,127,89,71}; 
int code3[] = {137,212,93,71}; 
int code4[] = {153,191,34,43}; 
int code5[] = {185,245,90,71}; 
int code6[] = {233,189,140,43};//int codeX[]= {w,x,y,z} correspond au code de la carte ou tag 
String uidString; 

void setup() {
  Serial.begin(9600);
  myservo.attach(MOTEUR);
  myservo.write(130);
  pinMode(3,OUTPUT);
  pinMode(6,INPUT);
  Serial.begin(9600); 
  SPI.begin(); // Initialiser SPI bus 
  rfid.PCD_Init(); // Initialiser MFRC522
  Serial.println(F("Arduino Prêt"));

}


void loop() {
    if(  rfid.PICC_IsNewCardPresent())
  { 
    readRFID();
  } 
  if(RFID == 1)
  {
    if (CAT == 1) {
      if ((millis()-tempsChat1)> JEUNE)
      {
        NOURIR == 1;
      }
    }
    if (CAT == 2) {
      if ((millis()-tempsChat2)> JEUNE) {
        NOURIR == 1;
      }
    }
    if (CAT == 3) {
      if ((millis()-tempsChat3)> JEUNE) {
        NOURIR == 1;
       }
    }
    if (CAT == 4) {
      if ((millis()-tempsChat4)> JEUNE) {
        NOURIR == 1;
       }
    }
    if (CAT == 5) {
      if ((millis()-tempsChat5)> JEUNE) {
        NOURIR == 1;
       }
    }
    if (NOURIR == 1) {
      Serial.println("Collier reconnu");
      tempsPlaque=millis();
      digitalWrite(3,HIGH);
      if ((millis()-tempsPlaque)> PLAQUE_DEPLACEE) {
        digitalWrite(3,LOW);
        tempsPlaque=millis();
          if ((millis()-tempsPlaque)> CHAT_SERVI) {
            tempsPlaque=millis();
            digitalWrite(3,HIGH);
            if ((millis()-tempsPlaque)> PLAQUE_DEPLACEE) {
              digitalWrite(3,LOW);
              if (CAT == 1) {
                tempsChat1=millis();
              }
              if (CAT == 2) {
                tempsChat2=millis();
              }
              if (CAT == 3) {
                tempsChat3=millis();
              }
              if (CAT == 4) {
                tempsChat4=millis();
              }
              if (CAT == 5) {
                tempsChat5=millis();
              }
              NOURIR==0
              RFID==0;
              delay(100);
          }
        }
      }
    }
  }
}
   
void readRFID() 

  rfid.PICC_ReadCardSerial(); 
  Serial.print(F("\nPICC type: ")); 
  MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); 
  Serial.println(rfid.PICC_GetTypeName(piccType)); 
  // Vérification si le PICC est de type Classic MIFARE 
  if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI && 
    piccType != MFRC522::PICC_TYPE_MIFARE_1K && 
    piccType != MFRC522::PICC_TYPE_MIFARE_4K) { 
    Serial.println(F("Votre tag RFID n'est pas MIFARE Classic.")); 
    return; 
  } 
    Serial.println("Code de tag RFID scanné:"); 
    printDec(rfid.uid.uidByte, rfid.uid.size); 
    uidString = String(rfid.uid.uidByte[0])+" "+String(rfid.uid.uidByte[1])+" "+String(rfid.uid.uidByte[2])+ " "+String(rfid.uid.uidByte[3]); 
    int i = 0; 
    boolean match = true; 
    while(i<rfid.uid.size) 
    { 
      if(!(int(rfid.uid.uidByte[i]) == int(code[i])))
      { 
        match = false;
      } 
          i++;   
    }   
    if(match)
    { 
      Serial.println("\n*** Déverrouiller ***");
      RFID == 1 
    }
    else 
    {
      Serial.println("\nCarte Inconnu"); 
    } 
    Serial.println("============================"); 
    // Pause PICC 
    rfid.PICC_HaltA(); 
    // Stopper encryption on PCD 
    rfid.PCD_StopCrypto1(); 
  } 
  void printDec(byte *buffer, byte bufferSize) {
  for (byte i = 0; i < bufferSize; i++) 
  {
    Serial.print(buffer[i] < 0x10 ? " 0" : " "); 
    Serial.print(buffer[i], DEC); 
  } 
}


Le message d'erreur :

/home/eleve/Bureau/PROGRAMME/PROGRAMME.ino: In function 'void loop()':
PROGRAMME:6: error: expected ';' before numeric constant
 #define RFID 0
              ^
/home/eleve/Bureau/PROGRAMME/PROGRAMME.ino:111:15: note: in expansion of macro 'RFID'
               RFID==0;
               ^
/home/eleve/Bureau/PROGRAMME/PROGRAMME.ino: In function 'void readRFID()':
PROGRAMME:150: error: expected ';' before '}' token
     }
     ^
exit status 1
expected ';' before numeric constant

Merci d'avance
Title: Re: Problème code Arduino
Post by: dbrion06 on Apr 02, 2019, 05:44 pm
Vous avez tout plein de bizarreries:
a) votre source, quoique bien empaqueté, est justifié à droite, rendant la lecture heroîque.
b) Traditionnellement, on met les macros en majuscules (et la convention moderne pour les constantes est plutôt de les typer, évitant de ce fait des erreurs)
#define RFID 0 devient
const byte RFID = 0; // ou mieux, const byte rfid = 0;
Je vois vers la ligne 111, une horreur

  NOURIR==0
Je lui aurais mis un ;
etes vous bien sûr de distinguer l'affectation (=) de la comparaison ( == )?
Il n'y a pas une ligne de commentaire. (je ne sais si c'est un critère de notation pour votre projet, mais ça me fait souffrir)
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: 68tjs on Apr 02, 2019, 06:55 pm
Quote
Bonjour, j'ai un problème avec le programme que j'ai fais et je ne trouve pas d'où il vient.
Alors là c'est grave !
Il existe des forum de psychanalyse je pense qu'ils devraient être mieux adaptés que celui ci.
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: jfs on Apr 02, 2019, 07:06 pm
Bernard, c'est le problème dont la provenance est inconnue... pour le reste je suis d'accord avec toi  :D
Title: probleme moteur arduino v2
Post by: davidmyst on Apr 02, 2019, 10:29 pm
bonsoir, imposible de mettre les moteurs en route (moteur xbox) avec logiciel simhub ou adafruit, driver bien mis pas d'erreur, matériel bien détecté. merci à vous

(http://zupimages.net/viewer.php?id=19/14/57xj.jpg)
https://zupimages.net/up/19/14/57xj.jpg
Title: Re: probleme moteur arduino v2
Post by: J-M-L on Apr 03, 2019, 12:09 am
Votre image (qui ne fournit aucune info pertinente)
(https://zupimages.net/up/19/14/57xj.jpg)
Title: Controler Bras ROT2U 6DOF via PCA9685
Post by: brRas on Apr 03, 2019, 12:48 am
Bonjour à tous !!

Alors tout d'abord je tiens à vous signaler que je débute en programmation, je vous prierai donc d'être indulgent vis à vis de mon manque de connaissance dans le domaine.

Je viens vers vous car je souhaite piloter un bras "ROT2U 6DOF" et ce via une "arduino uno R3" et une Board "Adafruit PCA9685 16-Channel Servo Driver" afin de contrôler les 6 servos et de les alimenter sans passer par l'arduino.

La Board PCA9685 requiert un autre type de code comparer à la library servo.h.
Mais malgré les 3 exemples fournit par adafruit je ne m'en sort pas :

https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library/tree/master/examples


Pour juste contrôler l'angle des servos pas de soucis (vu avec un de mes "tuteurs"...) :

Code: [Select]
void write (int servo, int position){
 
  int degrees = map(position, 0, 180, SERVOMIN, SERVOMAX );
  pwm.setPWM(servo, 0, degrees); 
}



Mais je souhaiterais créer une fonction par servo (afin d'informer SERVOMIN et SERVOMAX pour chaque servo indépendamment) pour contrôler la vitesse, et l'angle du servo.
Du genre :

Code: [Select]
void monServo1(int vitesseDuServo, int position){}

J' essaye avec une boucle for, mais je n'y arrive absolument pas...

Code: [Select]



#include <Wire.h>                         // Addressage Circuit PWM Adafruit
#include <Adafruit_PWMServoDriver.h>      // Addressage (Circuit PWM Adafruit = PWM Board)


                                          // Addressage Circuit PWM Adafruit
                                          // called this way, it uses the default address 0x40
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();


/*uint8_t servo1 = 0;                         // Servos Commandés - Numéro de sorties sur le breakout
uint8_t servo2 = 1;
uint8_t servo3 = 2;
uint8_t servo4 = 3;
uint8_t servo5 = 4;
uint8_t servo6 = 5;
*/
int posInit;                    // pose Initiale
int posFin;                     // pose Finale
int servo;
int position;
int T;                          // Valeur incrementante
int X;
int Btn=2;
int degrees;
#define SERVOMIN  150
#define SERVOMAX  650


void setup() {
                                          // SETUP :

  Serial.begin(9600);                     // Addressage Affichage Moniteur
  Serial.println(" 6 Servo test!");       // Affiche  : "6 Servo test"
  pinMode(Btn, INPUT_PULLUP);
  pwm.begin();                            // Initialisation PWM Board
  pwm.setPWMFreq(60);                      // Analog servos run at ~60 Hz updates
  delay(10);
}




void loop() {
                                            // LOOP  :

   Serial.println("START LOOP");   // Ecrit sur le Moniteur


boolean etatBtn = digitalRead (Btn);

    if(!etatBtn){
    Serial.println("BOUTON"); 
 
            if(posFin<posInit){                                                 // VOICI LA ZONE
              for(X=posInit; X<=posFin; X+T){                                 // QUE J'AI FAITE ET
                write(0, X);
               
              }                                                                     // QUI NE MARCHE PAS
            }
            else(posFin>posInit){
               for(X=posInit; X>=posFin; X-T){
                write(0, X);
               }           
            }                                                                        // JUSQU'ICI...
      }
      else {
      pause();
      delay(500);
      }
  Serial.println("END LOOP");
}



void write (int T, int position){
  int degrees = map(position, 0, 180, SERVOMIN, SERVOMAX );
  for(position=posInit; position<posFin; position+T){
  pwm.setPWM(servo, 0, degrees);
  }
}


void pause (){
    Serial.println("Servo = PAUSE");   // Ecrit sur le Moniteur :
  write(0, 80);
  write(1, 50);
  write(2, 85);
  write(3, 80);
  write(4, 77); 
    delay(100);
}

void pinceClosed (){
  Serial.println("PINCE CLOSED");   // Ecrit sur le Moniteur
  delay(100);
}

void pinceOpen (){
  Serial.println("PINCE OPEN");   // Ecrit sur le Moniteur
  write(5, 0);
  delay(100);
}







L'un d'entre vous serait il m'aider pls... 

Title: Utiliser la fonction "IF" ou/et "else if "
Post by: jojolito on Apr 03, 2019, 05:30 am
 Bonjour

Voilà j'ai un projet visant à commander 2 relais  à l'aide d'un capteur ultrason HC-SR04, dans le cadre d'un projet aquaponique ,les deux relais en question serviront à alimenter de pompes a eau j'ai déjà essayé d'écrire quelques lignes de code mais je n'obtiens pas le résultat voulu .. Car je sais pas si je dois utiliser la fonction "if" ou  "else if" ou même les deux ,j'aimerais avoir votre aide pour écrire la base du code

Voilà grossièrement ce que je voudrais faire exprimer sans code :

x= 10cm
y=5cm

Si la hauteur est plus petit que (< ) que x
Le Relais 1 s'allume
Le Relais 2 reste éteint

Si la hauteur est = X
Le Relais 1 s'eteint
Le Relais 2 reste éteint

Temporisation de 3 secondes

Si la hauteur est plus grande (>) que Y
Le Relais 1 reste éteint
Le relais 2 s'allume

Si la hauteur est = Y
Le Relais 1 reste éteint
Le Relais 2 s'éteint

Temporisation de 3 secondes



Voilà grossièrement les ordres à executer mais je n'arrive pas à convertir ça en ligne de code

J'avais fait un premier essai mais ça a ete un echec    :smiley-confuse:

Voilà les lignes de code du raté

Code: [Select]

void loop() {

niveau_culture = culture.distanceInMillimeters() / 10;
Serial.print("hautteur: ");
Serial.println(hautteur);
Serial.println("");
delay(250);

if (hauteur != x) {  
digitalWrite(relais 2, LOW);
digitalWrite(relais 1, HIGH);
}
if (hauteur>=x) {  
digitalWrite(relais 2, HIGH);
digitalWrite(relais 1, HIGH);
//Serial.println("marre_haute");
}
delay(3000);

if (hauteur !=y) {
digitalWrite(relais 1, LOW);
digitalWrite(relais 2, HIGH);  
}
if (hauteur <= y) {  
digitalWrite(relais 1, HIGH);
digitalWrite(relais 2, HIGH);
// Serial.println("marre_basse");
}
delay(3000);


Voilà quand j'ai chargé c'est ligne de code le relais 1 s'allume puis reste éteint malgré le fait que le capteur ultrasonique me relève une hauteur exacte dans le moniteur port série, et puisque le relais un refuse de s'allumer Le Relais 2 ne peut pas s'activer non plus , et donc le cycle est bloqué

Est-ce que je dois pas utiliser une boucle fort genre " while " ???

J'ai aussi un doute sur l'utilisation de la fonction "delay" , est-ce que je dois utiliser Delaymillisecondes plutot ???

Voilà merci de votre lecture aidez-moi s'il vous plaît


Title: Problème pour faire fonctionner une carte GSM et un anémomètre.
Post by: Arduino1402 on Apr 03, 2019, 10:37 am
Bonjour, j'ai un projet de BAC qui consiste à récupérer la vitesse du vent et envoyer une alerte via une carte GSM.

Problème : lorsque que j'empile la carte GSM sur le Grove Base Shield où se situe l'anémomètre, le moniteur série n'affiche plus les valeurs récupérées par l'anémomètre.

Voici le code :

#include <math.h>



volatile unsigned long Rotations; // cup rotation counter used in interrupt routine
volatile unsigned long ContactBounceTime; // Timer to avoid contact bounce in interrupt routine

float WindSpeed; // speed miles per hour
int WindSensorPin = 2;
void setup() {
Serial.begin(9600);

pinMode(WindSensorPin, INPUT);
attachInterrupt(digitalPinToInterrupt(WindSensorPin), isr_rotation, FALLING);

Serial.println("Davis Wind Speed Test");
Serial.println("Rotations\tKMH");
}

void loop() {

Rotations = 0; // Set Rotations count to 0 ready for calculations

sei(); // Enables interrupts
delay (2000); // Wait 2 seconds to average
cli(); // Disable interrupts

// convert to mp/h using the formula V=P(2.25/T)
// V = P(2.25/2) = P * 1.125

WindSpeed = Rotations * 1.125 * 1.61;

Serial.print(Rotations); Serial.print("\t\t");
Serial.println(WindSpeed);

}

// This is the function that the interrupt calls to increment the rotation count
void isr_rotation () {

if ((millis() - ContactBounceTime) > 15 ) { // debounce the switch contact.
Rotations++;
ContactBounceTime = millis();
}

}


Je me suis un peu renseigné, et j'ai remarqué que la fonction d'interruption et la carte GSM s'utilisaient sur la même broche (2 et 3). J'ai aussi essayé de placer l'anémomètre sur la broche 4, mais ça ne renvoie aucunes valeurs sur le moniteur série, la vitesse affichée est toujours 0 Km/h. Tandis que sans la carte GSM, des valeurs s'affichent sur le moniteur série.

Pouvez-vous m'aider à résoudre ce problème, s'il vous plait ? Merci d'avance.

Voici le matériel utilisé :
Carte GSM : https://www.gotronic.fr/art-shield-gsm-gprs-2-arduino-23601.htm
Anémomètre : https://www.lextronic.fr/temperature-meteo/19999-capteur-anenometre.html
Title: Pas de courant moteur
Post by: davidmyst on Apr 03, 2019, 11:24 am
Bonjour, j'ai une arduino uno et une Carte Robot Shield V2 Module alimenter en 12v je viens de testé avec un voltmètre la ou il faut brancher les moteurs et j'ai pas de jus  M1, M2, M3 et M4
 merci à vous
Title: Lecture vitesse du vent d'un anemometre
Post by: Zirkos on Apr 03, 2019, 11:44 am
Bonjour j'ai comme projet de lire la vitesse d'un anémomètre et de transmettre la données à mon arduino qui est en mode serveur sur un site WEB en local .Mais je voit absolument pas comment faire. Pouvez vous m'aidez ?
Code: [Select]
#include <SPI.h> //bibliothèqe pour SPI
#include <Ethernet.h> //bibliothèque pour Ethernet
byte mac[] = {0x90, 0xA2, 0xDA, 0x0F, 0x2B, 0xB7}; //adresse mac de votre carte
byte ip[] = {172, 19, 67, 14}; //adresse IP
EthernetServer serveur(80); // déclare l'objet serveur au port d'écoute 80
const int ane = 2;
int sensorValue = 0;
const int sensorPin = 0;
int val=0;
void setup() {
  pinMode(ane, INPUT);
  digitalWrite(ane, HIGH);
  Serial.begin (9600); //initialisation de communication série
  Ethernet.begin (mac, ip); //initialisation de la communication Ethernet
  Serial.print("\nLe serveur est sur l'adresse : ");
  Serial.println(Ethernet.localIP()); //on affiche l'adresse IP de la connexion
  serveur.begin(); // démarre l'écoute
}
void loop()
{
  EthernetClient client = serveur.available(); //on écoute le port
  if (client) { //si client connecté
    Serial.println("Client en ligne\n"); //on le dit...
    if (client.connected()) { // si le client est en connecté
      while (client.available()) { // tant qu'il a des infos à transmettre
        char c=client.read(); // on lit le caractère 
        Serial.write(c);// on l'écrit sur le moniteur série
        delay(1); //delai de lecture
      }
      //réponse au client
     client.println ("HTTP/1.1 200 OK");
      client.println ("Content-Type: text/html; charset=ascii");
      client.println ("Connection: close");
      client.println ( );
      client.println("<meta charset='utf-8'>");
      client.println("<html>"); //début du code html
      client.println("<head>"); //entête
      client.println("<style> body { background-color:skyblue;}</style>");
      client.println ("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"1\">");
      client.println("<header>");
      client.println("<title>Suiveur Solaire</title>"); //titre de la fenêtre
      client.println("</h1>");
      client.println("</head>");//fin d'entête
      client.println("<body>"); //corps
      client.println("<h1><u><p align=center>Suiveur Solaire</p></u></h1>"); //titre en grosse lettres
      client.println("<hr>"); //ligne horizontale
     { // boucle pour parcourir les pins
        client.print("<h1>Luminosite en %"); // affichage
        client.print(" : "); // affichage
        sensorValue= analogRead(0);
        sensorValue = map(sensorValue,0,1023,0,100);
        client.print(sensorValue);
        client.println("%</h1>");
        client.print("<br>"); //saut de ligne
      }
      for (int p=1;p<2;p++){ // boucle pour parcourir les pins
        client.print("<h1>Valeur potentiometre V"); // affichage
        client.print(" : "); // affichage
        val = analogRead(p);
        val = map(val,0,1023,0,5);
        client.print(val);
        client.print("<br>"); //saut de ligne
      }
       for (int p=2;p<3;p++){
        client.print("<h1>Mise en sécurité du suiveur solaire"); // affichage
        client.print(" : "); // affichage
        ane = digitalRead(p);
        client.print(ane);
        client.println("</h1>");
        client.print("<br>"); //saut de ligne
       }
      client.println("<hr>"); //ligne horizontale
      client.println("</body>"); //fin du corps
      client.println("</html>"); //fin du code html
      client.stop(); //on déconnecte le client
      Serial.println("Fin de communication avec le client");
      }
    }
  }
Title: Re: Problème pour faire fonctionner une carte GSM et un anémomètre.
Post by: dbrion06 on Apr 03, 2019, 11:46 am
Votre code a l'air décent, et bien commenté.
Cependant, je vois un moyen problème:
https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/
donne un tableau récapitulatif des pattes où une interruption est possible.
Suivant une des lois de Murphy, le UNO ne connaît que les pattes 2 et 3,  reservées par le GSM.
Un mega, quoique surdimensionné, résoudrait ce problème....
===================
EDITED

une solution moins onéreuse (de toutes façons, vous avez un delai bloquant de 2 secondes) consisterait à
declarer un boolean etatPrecedent
noter le nombre de millisecondes écoulees uint32_t debut = millis
tant que millis() -debut < 2000
si etatPrecedent == False et valeur patte anemo == Vrai
 incrémenter le compteur
dans tous les cas
etatPrecedent = valeur patte anemo

Title: un peu d aide pour un debutant svp merci beaucoup !
Post by: densha on Apr 03, 2019, 06:47 pm
bonjour,

je viens vers vous car j'ai besoin d aide svp

je cherche a relier des boutons pressable (12volts) sur une carte préalablement programmée (par moi meme) en petits sont mp3, de facon a ce que quand j appuis sur un des boutons car y en a beacoup en fait, cela active le son programé.l'ideal pour moi serait aussi une sortie rca pour y coller un petit ampli toujours en 12volt aussi c est pour un vehicule merci beaucoup de votre aide, si vous avez des noms de cartes ou des modèles se serait super ! :)

comme ceci !
https://www.youtube.com/watch?v=iT7_CG2hvuA

mais chaque boutons doit faire un sons different et chaque sons est appropié a un seul bouton, on ne peux pas faire le mm sons avec un autre bouton

Title: J'ai besoin d'aide pour mon Shield RS232 et Afficheur de texte défilant
Post by: FiiiGaARDo on Apr 04, 2019, 08:55 am
Je suis actuellement un élève en Terminale STI2D pour faire un système d'alerte de feu de forêt.

J'ai besoin que le panneau LED affiche un message d'alerte. Pour cela, je dois passer à travers une carte Romeo v2.2 (équivalent Arduino Leonardo) vers un Shield  RS232 Joy-it vers l'Afficheur.

D'abord, je dois savoir comment passer les données à travers le Shield RS232 parce j'ai essayé plusieurs trucs et ça n'a pas marché...

Deuxièmement, je cherche le code à rentrer dans le panneau parce que le manuel n'en parle pas.

Merci d'avance.  :)
Title: Re: I need Help for RS232 Shield and LED Light Writing
Post by: al1fch on Apr 04, 2019, 09:06 am
Bonjour
Sur un forum francophone il est demandé de s'exprimer en français
Un détour  par la Règle du Forum est également plus que recommandé avant de poster son premier message.
En cette période de projets scolaires plusieurs messages tombent tous les jours dans la poubelle faute de se conformer aux règles de publication.
Title: Re: J'ai besoin d'aide pour mon Shield RS232 et Afficheur de texte défilant
Post by: al1fch on Apr 04, 2019, 09:24 am
Quote
j'ai essayé plusieurs trucs et ça n'a pas marché...
Dire et montrer ce qui a été testé, ce qui ne fonctionne pas....

si tu veux que ton message reste en place il faut tenir compte des Règles du forum francophone et fournir toutes les informations demandées (liens vers les composants, schéma de montage, code testé......)
Quote
je cherche le code à rentrer dans le panneau parce que le manuel n'en parle pas.
Quel manuel ?
N'attends pas de ce forum que quelqu'un  lise les docs à ta place et fasse ton code !!
Title: Calculer la vitesse de rotation d'un ventilateur
Post by: NZleFR on Apr 04, 2019, 09:51 am
Bonjour , je fais appel à vous car je galère à calculer la vitesse de rotation d'un ventilateur de PC 12V 0.1 A
que j'ai branché à générateur pour le faire tourner . SVP j'aimerai bien savoir comment je pourrais faire
Title: Re: Calculer la vitesse de rotation d'un ventilateur
Post by: fdufnews on Apr 04, 2019, 10:18 am
Voir ici (http://fr.lmgtfy.com/?q=ventilateur+vitesse+de+rotation+arduino)
Et voir ici si tu veux continuer sur le forum (http://forum.arduino.cc/index.php?topic=546956.0)
Title: Re: Calculer la vitesse de rotation d'un ventilateur
Post by: NZleFR on Apr 04, 2019, 10:23 am
Des recherches j'en ai fait mais je n'ai rien trouvé pouvant m'aider
Title: Re: Calculer la vitesse de rotation d'un ventilateur
Post by: pomme-poire on Apr 04, 2019, 10:25 am
fdufnews te demande d'être précis
salut
Title: Re: Calculer la vitesse de rotation d'un ventilateur
Post by: NZleFR on Apr 04, 2019, 10:31 am
Donc j'ai un ventilateur de PC 12 0.1 A avec 3 fils ( Rouge + ) (Noir - ) (Blanc pour récupérer l'information je pense) le blanc est relié au port 2 de la carte et les deux autres à un générateur 12V et je voudrais comment faire pour mesurer le nbre de tours que fait le ventilateur avec de savoir la vitesse en m/s ou en km/h
Title: Re: Controler Bras ROT2U 6DOF via PCA9685
Post by: brRas on Apr 04, 2019, 10:40 am



Salut à tous !! 

Y a t'il quelqu'un qui serait m'aider la dessus ??

En gros comment maitriser une boucle for en utilisant la Board PCA9685 de chez Adafruit...

Pleaseeeeeeeeeeeeuuuh !!!! :smiley-confuse:
Title: Comment expliquer ce programme de façon simple
Post by: AgrafeuseWizard on Apr 05, 2019, 03:54 pm
Bonjour,

J'ai reçu depuis peu un petit capteur gps équipé d'une pile qui me permet de réaliser à la fois un gps et une clock.

J'ai réalisé un montage d'une personne sur youtube qui me permet d'afficher les informations que récolte le gps sur un ecran lcd.

Mais voila je voudrais comprendre comment fonctionne le programme qu'il utilise.

Merci par avance !

Voici le programme ainsi que la vidéo:

https://www.youtube.com/watch?v=5otpxOineGc (https://www.youtube.com/watch?v=5otpxOineGc)


// Arduino GPS real time clock with NEO-6M GPS module

#include <TinyGPS++.h>           // Include TinyGPS++ library
#include <SoftwareSerial.h>      // Include software serial library
#include <LiquidCrystal.h>       // Include LCD library

TinyGPSPlus gps;

#define S_RX    9                // Define software serial RX pin
#define S_TX    8                // Define software serial TX pin

SoftwareSerial SoftSerial(S_RX, S_TX);    // Configure SoftSerial library

// LCD module connections (RS, E, D4, D5, D6, D7)
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

byte last_second;
char Time[]  = "TIME:00:00:00";
char Date[]  = "DATE:00/00/2000";

void setup(void) {
 SoftSerial.begin(9600);

 // set up the LCD's number of columns and rows
 lcd.begin(16, 2);

 lcd.setCursor(0, 0);
 lcd.print(Time);                           // Display time
 lcd.setCursor(0, 1);
 lcd.print(Date);                           // Display calendar
}

void loop() {

 while (SoftSerial.available() > 0) {

   if (gps.encode(SoftSerial.read())) {

     if (gps.time.isValid()) {
       Time[5]  = gps.time.hour()   / 10 + 48;
       Time[6]  = gps.time.hour()   % 10 + 48;
       Time[8]  = gps.time.minute() / 10 + 48;
       Time[9]  = gps.time.minute() % 10 + 48;
       Time[11] = gps.time.second() / 10 + 48;
       Time[12] = gps.time.second() % 10 + 48;
     }

     if (gps.date.isValid()) {
       Date[5]  = gps.date.day()    / 10 + 48;
       Date[6]  = gps.date.day()    % 10 + 48;
       Date[8]  = gps.date.month()  / 10 + 48;
       Date[9]  = gps.date.month()  % 10 + 48;
       Date[13] =(gps.date.year()   / 10) % 10 + 48;
       Date[14] = gps.date.year()   % 10 + 48;
     }

     if(last_second != gps.time.second()) {
       last_second = gps.time.second();
       lcd.setCursor(0, 0);
       lcd.print(Time);                           // Display time
       lcd.setCursor(0, 1);
       lcd.print(Date);                           // Display calendar
     }

   }

 }

}
Title: Re: Comment expliquer ce programme de façon simple
Post by: lesept on Apr 05, 2019, 04:29 pm
D'abord, modifie ton message pour mettre ton programme entre balises CODE (voir messages épinglés en haut du forum).

Un code Arduino est composé de 3 parties : l'entête, le setup et la loop.
Regardons les une par une.

Entête :
j'ai un peu modifié l'ordre pour rendre plus facile la description
Code: [Select]
// Arduino GPS real time clock with NEO-6M GPS module
#define S_RX    9                // Define software serial RX pin
#define S_TX    8                // Define software serial TX pin

#include <TinyGPS++.h>           // Include TinyGPS++ library
#include <SoftwareSerial.h>      // Include software serial library
#include <LiquidCrystal.h>       // Include LCD library

TinyGPSPlus gps;
SoftwareSerial SoftSerial(S_RX, S_TX);    // Configure SoftSerial library
// LCD module connections (RS, E, D4, D5, D6, D7)
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

byte last_second;
char Time[]  = "TIME:00:00:00";
char Date[]  = "DATE:00/00/2000";
Les 2 premières lignes définissent des constantes, en fait les pins sur lesquelles est connecté ton GPS. RX, et TX sont souvent des noms réservés pour une liaison série (= réception, transmission).

Les 3 lignes suivantes déclarent l'utilisation de 3 bibliothèques, celle du GPS, celle qui permet de connecter le GPS sur une liaison série émulée (pour laisser la liaison série de l'Arduino pour la comm avec le PC) et celle de l'écran LCD.

Les 3 lignes suivantes déclarent les périphériques :
Enfin, on déclare 3 variables globales.

Le setup :

Code: [Select]
void setup(void) {
  SoftSerial.begin(9600);

  // set up the LCD's number of columns and rows
  lcd.begin(16, 2);

  lcd.setCursor(0, 0);
  lcd.print(Time);                           // Display time
  lcd.setCursor(0, 1);
  lcd.print(Date);                           // Display calendar
}
Paramétrage de la liaison série logicielle et préparation du LCD. Au passage, tu n'utilises pas la liaison série native de l'arduino dans ton code, donc tu aurais très bien pu te passer de cette liaison série logicielle et utiliser celle qui existe (pins 0 et 1). Il faut simplement débrancher le GPS avant de téléverser le code sur l'arduino, puis le brancher quand c'est terminé.

La loop :
Elle commence par :
Code: [Select]
while (SoftSerial.available() > 0) {Donc elle attend que le GPS envoie des données. Lorsque ces données sont arrivées :
Code: [Select]
    if (gps.encode(SoftSerial.read())) {

      if (gps.time.isValid()) {
        Time[5]  = gps.time.hour()   / 10 + 48;
        Time[6]  = gps.time.hour()   % 10 + 48;
        Time[8]  = gps.time.minute() / 10 + 48;
        Time[9]  = gps.time.minute() % 10 + 48;
        Time[11] = gps.time.second() / 10 + 48;
        Time[12] = gps.time.second() % 10 + 48;
      }
Lecture des valuers de l'heure envoyées par le GPS et écriture de ces valeurs dans la variable Time. Time est un tableau de caractères déclaré dans l'entête. Un caractère est codé en ASCII (http://www.asciitable.com/). Mais les données reçues sont des chiffres. Donc pour transformer un chiffres (de 0 à 9) en un caractère (de '0' à '9') qui vaut en ASCCI de 48 à 57, on lui ajoute 48.

La suite, c'est la même chose pour la date. Enfin :
Code: [Select]
      if (last_second != gps.time.second()) {
        last_second = gps.time.second();
        lcd.setCursor(0, 0);
        lcd.print(Time);                           // Display time
        lcd.setCursor(0, 1);
        lcd.print(Date);                           // Display calendar
      }
Affichage de l'heure et la date sur le LCD si les secondes ont changé (le if en haut), afin d'éviter que l'écran clignote.

Clair ?
Title: Re: Comment expliquer ce programme de façon simple
Post by: AgrafeuseWizard on Apr 05, 2019, 04:45 pm
Tout d'abord je tiens à te remercier pour avoir donné de ton temps afin de m'expliquer clairement comment fonctionne ce programme.

J'ai juste une dernière question, dans la vidéo la personne ne branche que le tx, alors que dans le programme il utilise les deux. Est-ce que cela change quelque chose ?
Title: Re: Comment expliquer ce programme de façon simple
Post by: J-M-L on Apr 05, 2019, 08:10 pm
Si vous voulez une réponse modifiez premier post...comme le dit lesept

edit: trop tard...
Title: projet sur un shield wifi
Post by: evan1208 on Apr 07, 2019, 07:03 pm
bonjour, je suis en sti2d et pour projet bac je dois faire un programme pour pouvoir acquérir des informations qui sont sur la carte arduino uno par l'intermédiaire du module wifi model shield r3 qui va me transmettre les infos prisse sur la carte pour les garder et les envoyer à un autre programme.
je suis complétement bloquer sur la partie programme de mon projet et si pouvais m aidez ou m apportez des informations ce serais avec grand plaisir.
mon adresse email est
evan.can@icloud.com   
Title: Re: projet sur un shield wifi
Post by: J-M-L on Apr 08, 2019, 06:33 am
Encore un post qui va aller direct à la poubelle... s'il vous postez ici il faut lire les règles du forum, et monter les recherches que vous avez effectuées, expliquez ou et pourquoi ça bloque etc... il y a des tonnes d'exemples fournis pour les shield wifi
Title: Programmation Ardiuno
Post by: Kevin2001 on Apr 09, 2019, 05:57 pm
Bonjour,
Je suis en train de réaliser un projet avec mon lycée et j'ai besoin d'aide s'il vous plait:
Je dois réaliser un système de sécurité sur un tiroir afin de permettre l'arrêt de celui-ci (par le biais de vérins) en définissant une valeur de tension sur le programme et arrêter l'ouverture du tiroir si quelque chose venait à forcer sur le tiroir donc sur les vérins , voyez-vous se que je veux dire ?
Seulement je ne sais pas du tout comment m'y prendre. J'ai un programme qui me permet de contrôler ces vérins à l'aide d'une télécommande infra-rouge , il faudrait y ajouter les lignes de commandes manquantes servant à réaliser mon système de sécurité. Si vous savez comment faire pour créer mon système , je vous ferai parvenir le programme.
J'espère avoir été assez clair pour vous, merci de votre compréhension , bonne fin journée.
Title: Re: Programmation Ardiuno
Post by: Thea on Apr 09, 2019, 06:08 pm
Vous pourriez essayer d'écrire ce bout de code vu que vous avez déjà la gestion du vérin avec la télécommande non ? Boucle if tension > seuil alors j'arrête la sortie des vérins ...
Title: Re: Programmation Ardiuno
Post by: al1fch on Apr 09, 2019, 06:43 pm
Bonsoir
Quote
J'espère avoir été assez clair pour vous,
Le Forum est clair pour ce qui est des règles de fonctionnemen (http://forum.arduino.cc/index.php?topic=546956.0)t à étudier en priorité et à appliquer intrégralement
Ne pas oublier de consulter la partie sur les projets scolaires

Title: Re: Programmation Ardiuno
Post by: dbrion06 on Apr 09, 2019, 06:53 pm
"Si vous savez comment faire pour créer mon système , je vous ferai parvenir le programme."
C'est gentil, mais non merci...

Je préfèrerais
a) votre arduino
b) vos vérins
c) votre jauge de contrainte
d) votre diplôme

(lady Ada, Sparkfun et des milliers d'autres diffusent des programmes testés et en état de  fonctionner; j'ai calculé qu'une vie entière -ou ce qui me reste- ne suffirait pas à les apprècier à leur juste valeur)
Title: détéction d'un courant éléctrique ARDUINO
Post by: loqmane on Apr 09, 2019, 07:03 pm
bonjour,

je voudrai détecter la présence ou non d'un courant électrique de préférence celui de 220 V.  je voudrai que cette information soit visible à l'aide d'un tableau de bord à partir du Arduino comment je peux faire cela?
Merci pour votre compréhension.
P.S.
je suis qu'un débutant dans le domaine

 
Title: Re: détéction d'un courant éléctrique ARDUINO
Post by: jfs on Apr 09, 2019, 07:26 pm
Mince.... déjà trois sujets différents pour la même question et on sait toujours pas si c'est un projet scolaire....

De mon coté je ne me pose plus trop la question ça parait évident...
Title: Re: Programmation Ardiuno
Post by: Kevin2001 on Apr 09, 2019, 07:51 pm
Que voulez-vous dire avec Diplôme ?
Title: Re: Programmation Ardiuno
Post by: dbrion06 on Apr 09, 2019, 07:56 pm
Bon, d'accord, je retire le point d) -j'ai vraiment passé l'âge-
Notez que le point c (jauge de contrainte) peut être combiné à arduino et soumis à google (une façon de constater qu'on est en fin de course est de mesurer la contrainte que subit un vérin)
Title: Re: Programmation Ardiuno
Post by: Kevin2001 on Apr 09, 2019, 11:29 pm
ok, mais ducoup je ne vois pas comment faire mon programme pour mon système de sécurité
Title: Re: Programmation Ardiuno
Post by: dbrion06 on Apr 10, 2019, 07:17 am
Je suppose qu'une (grosse) partie est déjà faite.
Vous relisez les consignes relatives aux posts, et vous le postez (parce que là, à moins d'avoir une boule de cristal hyper performante ou -incl- des yeux telescopiques, il est difficile de savoir ce qui est déjà fait et quelles sont les horreurs préexistantes)
Te av baxtalo.
Title: Re: Programmation Ardiuno
Post by: fdufnews on Apr 10, 2019, 12:22 pm
La réponse à ta question était dans le 2nd message.
Mets ton code pour qu'on comprenne comment il est organisé.
Title: Re: Programmation Ardiuno
Post by: dbrion06 on Apr 10, 2019, 12:30 pm
Son code est il organisé?
Title: Programme gps et gsm ne marche pas
Post by: batiste1904 on Apr 10, 2019, 12:32 pm
Bonjour à tous je me tourne vers vous aujourd'hui car après 1 semaine de recherche je ne trouve pas la réponse a ma question .
Je dois faire un programme qui doit me permettre d'acquérir des données gps les traiter (découper ce qui m'intéresse) puis les envoyer par sms à un smartphone .
J'ai un programme gps qui fonctionne et un programme d'envoie de sms qui fonctionne aussi;
J'ai rassemblé ces deux programmes mais mon programme final ne fonctionne pas !
Je pense qu'il s'agit d'un problème au niveau de la découpe des donnés au niveau des string et usigned char incompatible mais je ne trouve pas .

merci d'avance pour toutes vos réactions !

ci joint le programme final :

#include <GSM.h>
#define PINNUMBER ""


GSM gsmAccess;
GSM_SMS sms;


unsigned char buffer[64];
int count=0;
String decoupe ;
String trame ;

void setup() {
 Serial1.begin(9600);
 Serial.begin(9600);



 // connection state
 boolean notConnected = true;


 // Start GSM shield
 // If your SIM has PIN, pass it as a parameter of begin() in quotes
 while (notConnected) {
   if (gsmAccess.begin(PINNUMBER) == GSM_READY) {
     notConnected = false;
   } else {
     delay(1000);
   }
 }
Serial.println("GSM initialized");
}



void loop() {

 trame = ("");
 decoupe = ("");
   if (Serial1.available())                     // if date is coming from software serial port ==> data is coming from SoftSerial shield
   {
       while(Serial1.available())               // reading data into char array
       {
           buffer[count++]=Serial1.read();      // writing data into array
           if(count == 64)break;
       }
       Serial.write(buffer,count);
       trame = Serial.read();

       
       decoupe = trame.substring(18,42);        

     
      for (int i=0; i<count;i++)
   { buffer=NULL;}
                       
       count = 0;                              
 }
 if (digitalRead(12) == HIGH) {
   envoimessage();  
 }

}




void envoimessage() {


 // send the message

   
 sms.beginSMS("+336xxxxxxx");
 sms.print(decoupe);
 sms.endSMS();
 
}
Title: Re: Programmation Ardiuno
Post by: Kevin2001 on Apr 10, 2019, 10:16 pm
Je ne comprend pas trop votre façon de parler , c'est de la traduction ?
Title: Re: Programmation Ardiuno
Post by: dbrion06 on Apr 11, 2019, 07:45 am
Avez vous un synthésiseur de voix? Parce qu'ici, on écrit.... (et votre façon de demander de l'aide a l'air productive et efficace).
Title: Re: Programme gps et gsm ne marche pas
Post by: J-M-L on Apr 11, 2019, 09:17 am
Ne donnez pas votre numéro de mobile... et lisez les règles du forum
Title: Re: Programme gps et gsm ne marche pas
Post by: dbrion06 on Apr 11, 2019, 09:36 am
Vous avez l'air de mélanger joyeusement serial et soft serial...
Title: Re: Programmation Ardiuno
Post by: fdufnews on Apr 11, 2019, 10:49 am
Je ne comprend pas trop votre façon de parler , c'est de la traduction ?
Tu dis avoir une modification à faire dans ton logiciel.
On te demande de nous le faire voir pour pouvoir t'expliquer comment tu pourras le modifier c'est pourtant pas compliqué à comprendre.
Title: Re: Programmation Ardiuno
Post by: dbrion06 on Apr 11, 2019, 11:16 am
Peut être qu'en l'expliquant en kalderash, il comprendrait mieux.
Title: J'ai un problème aidez moi
Post by: Yanislab on Apr 11, 2019, 11:59 am
Bonjour je dois réaliser un programme pour mon projet pour le bac qui est un distributeur de savon automatique. Cela va faire de nombreux jours que je suis dessus et je ne trouve pas la solution. 


Je vous explique le programme que je dois réaliser doit pouvoir afficher "détection" sur un écran LCD ( Grove-LCD RGB Backlight)  quand le capteur (Ultrasonic Ranger) détecte quelque chose à moins de 9 cm de celui-ci sinon il doit afficher "rapprochez-main" puis recommencer cela en boucle.


Mais mon problème est que le capteur ne détecte plus il affiche toujours une valeur de 0 cm et l'écran affiche donc rapprochez main puis reste figer sur détection alors qu'il devrait revenir sur rapprochez main.
Aidez moi svp c'est urgent !!!!!
(Je vous le joint aussi en pièce jointe et en PDF)
 
Merci d'avance

Title: Re: J'ai un problème aidez moi
Post by: dbrion06 on Apr 11, 2019, 12:15 pm
Déjà, vos deux labels -bailout et un autre nommé "label" : c'est parlant..."  (et les goto ...) ne servent à rien, vu le fonctionnement de loop...
Ensuite, vous pouvez vous dispenser (et dispenser de la lecture) de la distance en pouces (surtout avec le brexit...)
Par contre, vous devriez dans tous les cas afficher la distance sur leport série (tant que ce n'est pas débuggué, au moins)
Title: Communication entre une Arduino un thermoplongeur et un relais moteury
Post by: Barbosa01 on Apr 11, 2019, 05:57 pm
Bonjours

J'envoie ce message pour que l'on m'aide pour mon projet puisque je suis en SIN actuellement et et dans mon projet je dois faire la communication entre mon thermoplongeur qui est dans l'aquarium et l'arduino pour une application gérer à distance pour cela je dois utiliser un relais moteur mais il faut que je le programme et c'est cela le problème c'est que je ne sais pas comment faire pour faire cette communication pouvez-vous m'aider s'il vous plaît pour faire ce programme sous arduino

Cordialement
Title: Re: Communication entre une Arduino un thermoplongeur et un relais moteury
Post by: J-M-L on Apr 11, 2019, 06:00 pm
les virgules, les points, les phrases et paragraphes, ça vous dit quelque chose ?

Quote
pour que l'on m'aide pour mon projet puisque je suis en SIN actuellement
je ne vois pas bien le "puisque"...

Lisez les règles d'usage du forum. changez votre post (ou repostez parce qu'à mon avis celui là va à la poubelle) en fonction de ces règles.
Title: variateur de vitesse pour moteur asynchrone
Post by: ISPMPRPFE on Apr 11, 2019, 07:17 pm
salut, je veux commender un variateur de vitesse pour MA3- par arduino R3, est-il faisable et quelles composants nécessaire pour cela.
Merci d'avance
Title: Re: variateur de vitesse pour moteur asynchrone
Post by: pomme-poire on Apr 11, 2019, 09:06 pm
salut et bienvenu.

Beau projet.
 
Nous attendons avec impatience tes questions.
Title: Time
Post by: Mary779 on Apr 14, 2019, 11:20 pm
Bonjour,
Je cherche à savoir combien du temps un bouton poussoir reste à l'état 1 . J'ai fait pas mal des tentatives pour trouver le code convenable mais en vain . Si quelqu'un a une idée
Title: Re: Time
Post by: hbachetti on Apr 14, 2019, 11:33 pm
Tu testes l'état du bouton. S'il change d'état tu mémorises le temps : millis()
S'il change d'état à nouveau tu mémorises le 2è temps : encore millis()
Une petite soustraction et voilà ...

Le problème va être de gérer les rebonds : librairie bounce2 (https://github.com/thomasfredericks/Bounce2)

Cette librairie possède 2 méthodes intéressantes : rose() et fell().

Pense aux pull-ups :

https://github.com/thomasfredericks/Bounce2/blob/master/examples/change/change.ino (https://github.com/thomasfredericks/Bounce2/blob/master/examples/change/change.ino)
Title: Re: Time
Post by: Mary779 on Apr 14, 2019, 11:54 pm
 En effet c'est pas un boutton poussoir mais un capteur et je veux quand le capteur reste écouler pendant un certain temps faire  allumer une lampe
Title: Re: Time
Post by: kamill on Apr 15, 2019, 12:16 am
C'est le même principe
Quand le bouton passe de 0 à 1 tu mémorises le temps
Quand le capteur passe de 1 à 0 tu soustrais le temps mémorisé au début du temps actuel, ça te donne la durée
Si la duree est supérieure au temps désiré tu allumes la lampe
Code: [Select]
  static byte boutonPrecedent=LOW;
  static unsigned long debutAppui;
 
  byte bouton=digitalRead(pinBouton);
  if (bouton!=boutonPrecedent)
  {
    if (bouton==HIGH)
    {
      debutAppui=millis();  // on mémorise le temps de l'appui
    }
    else
    {
      unsigned long duree=millis()-debutAppui;
      Serial.println(duree);
      if (duree>3000)
      {
        Serial.println("allumage de la lampe");
      }
    }
    boutonPrecedent=bouton;
    delay(20);              // debounce
  }


Quand est ce que la lampe s'éteint?
Title: Re: Time
Post by: Mary779 on Apr 15, 2019, 01:30 am
Vous n'avez pas compris mon intention .
Je veux quand le capteur reste en l'état 1 pendant une durée de 5 secondes ou plus j'allume la lampe
Title: Re: Time
Post by: kamill on Apr 15, 2019, 01:47 am
Dans ce cas, il faut tester le temps ecoulé depuis que le capteur est à 1
Code: [Select]
  static byte boutonPrecedent = LOW;
  static unsigned long debutAppui;

  byte bouton = digitalRead(pinBouton);
  if (bouton != boutonPrecedent)
  {
    if (bouton == HIGH)
    {
      debutAppui = millis(); // on mémorise le temps de l'appui
    }
    else
    {
      debutAppui = 0;
    }
    boutonPrecedent = bouton;
    delay(20);              // debounce
  }
  if (debutAppui != 0 && millis() - debutAppui >= 5000)
  {
    Serial.println("allumage de la lampe");
  }
Title: Re: Programmation Ardiuno
Post by: Kevin2001 on Apr 15, 2019, 03:37 am
Ahah non mais vos phrases étaient mal construites je trouves ;) désolé, oui je vous envoie ça demain merci
Title: Re: Time
Post by: jfs on Apr 15, 2019, 07:16 am
Et c'est pour quoi ce joli projet ?
Title: Re: Programmation Ardiuno
Post by: dbrion06 on Apr 15, 2019, 11:15 am
Quote
Ahah non mais vos phrases étaient mal construites je trouveS
Je pense charitablement que vous devriez apprendre:

a) la grammaire française (facile: vous avez eu des cours; vous évitera de vous ridiculiser .... )

b) le bon sens (y aura-t-il une bonne âme pour corriger des horreurs de programmerie, alors que  vous êtes supposé appliquer un cours construit)

c) les règles de programmation (facile: vous avez eu des cours)

d) à poster sur ce site (et à ce stade, vous avez toutes les chances de vous faire "troller")

dans l'ordre des priorités....

Ja devlesa.
Title: Demande d'aide pour comprendre le code
Post by: DebutantArduino on Apr 15, 2019, 11:56 am
Bonjour, je viens à vous, car la semaine dernière mon professeur d'électronique, nous as demandé de comprendre ce code afin de pouvoir l'exploiter et le faire fonctionner.
En faite, le TP consiste à afficher un message sur un afficheur de type industriel avec 24 matrices de 5*7 LEDS organisée en 2 lignes de 12 caractères. Etant donné que nous sommes tous débutant en codage, ils nous à donné un code et nous as demandé d'essayer de le comprendre, mais bon sans base voila.
Du coup je viens à vous pour m'aider à le comprendre, j'ai mis quelques lignes de commentaires mais après je suis complètement perdu. (Des commentaires sont au professeur)


Le code étant trop grand je le mets en pièce-jointe
Title: Projet communication entre arduino et rasberry sans fil
Post by: Waryerss on Apr 15, 2019, 01:41 pm
Bonjour, j'ai un petit souci, j'aimerai,pour un projet, faire communiquer mon arduino mega et une raspberry en sans fil. J'ai un module bluetooth BC417, qui doit ce connecter à l'arduino et utiliser le bluetooth de la raspberry. J'ai aucune idée du câblage ni du code  :smiley-roll:
Merci de votre aide !

Lien utile : - module bluetooth  :https://fr.rs-online.com/web/p/products/1743260/?grossPrice=Y&cm_mmc=FR-PLA-DS3A-_-google-_-PLA_FR_FR_Semi-Conducteurs-_-Kits_De_D%C3%A9veloppement%7CKits_De_D%C3%A9veloppement_Pour_Radio_Fr%C3%A9quence-_-PRODUCT_GROUP&matchtype=&pla-623180436948&gclid=Cj0KCQjw19DlBRCSARIsAOnfRegJGupcMRWUcpBxoKb0W6mVt6ZsL_vkiVNfUzuB4lRrrGPqTKQrffwaAnxsEALw_wcB&gclsrc=aw.ds
Title: Re: Projet communication entre arduino et rasberry sans fil
Post by: al1fch on Apr 15, 2019, 02:15 pm
Bonjour

Comme indiqué dans son titre ce sous-forum est exclusivement dédié aux réelisations FINIES et Projets FINIS
pour les petits soucis, le moyens et les gros c'est dans le Forum principal que ça se passe

La Règle du Forum précise très clairement tout cela et prendre connaissance de cette règle en arrivant ici n'est pas superflu, c'est la 'case départ'.....

demandes rapidement au modérateur le déplacement du fil (lien Report to Modérator)

(la poubelle du forum se remplit tous les jours avec des messages ne tenant pas compte du mode de fonctionnement défini (http://forum.arduino.cc/index.php?topic=359876.0) )

Title: Re: Demande d'aide pour comprendre le code
Post by: dbrion06 on Apr 15, 2019, 04:18 pm
Bon, ce code n'est pas fini:
une variable BAUDRATE sert à définir la vitesse de transmission, et ne sert jamaos (j'aurais defini BAUDRATE comme 115200 -inutile de perdre du temps à transmettre-) et, dans setup, Serial.begin aurait été Serila.begin(BAUDRATE); au lieu de 9600, vitesse d'un escargot arthritique)
Il manque aussi un schéma de cablage (les exemples d'Arduino donnent des indications de branchement: pourquoi ne suit on pas cet exemple -surtout s'il s'agit de donner aux élèves de bonnes habitudes....-)

Les commentaires sont judicieux, OTOH...
Les températures (gérées par la foncrion temp) et date-heure (gérée par la fonction Horloge ) sont envoyées sur la jonction série, et ne concernent pas l'afficheur industriel). En passant, noter que fahrenheit est calculé .... et ne sert à rien (en plus, avec le Brexit, quel en est l'intérêt?)


dans setup, l'affichage sur plein de segments est codé en dur..... (au moins le passage d'un texte à un tableau utilisable pour l'affichage) J'aurais vérifié si un caractère est de l'aSCII avant de
Code: [Select]

/* Recherche du caractère "Espace(0x20) dans le tableau buffer (Voir aide fonction strtok())*/
char dlm[] = "' '"; // Délimiteur/Séparateur "espace" contenu dans la "chaine" buffer
int cnt = 0;
char *pch ;// Equivalent char *pch=strtok(buffer, dlm);
pch= strtok(buffer, dlm); //

il y a une incoherence entre "la recherche d'un espace "  -commentaire- et la définition de ce qu'on cherche reellement (espace ou simple quote selon dlm)
Title: Texte LCD ré afficher
Post by: Webizz82 on Apr 15, 2019, 05:45 pm
Bonjour j'ai un problème, pouvez-vous m'aider m'aider je vous en supplie je galère. J'ai tout tester (enfin je crois). Le texte est ré affiché dans le loop donc sur le LCD on le voit très mal, il est presque illisible sur un fond bleu. Avez vous un tips pour régler, de facon a ce que le texte soit afficher une seule fois ou moins de fois svp Merci passez une bonne journée !


Code: [Select]

#include <math.h>
#include <ISD1700.h>
#include <math.h>
#include <Wire.h>
#include "rgb_lcd.h"
#include "DS1307.h"
#define SUR_TEMP_PIN A0 // Broche d'entrée analogique connectée à la broche SUR du capteur de température

//  CAPTEUR DE TEMPÉRATURE **********************************************************************
int temp_calibration = 0;     //Ce paramètre a été utilisé pour calibrer la température
int temperature_range = 10;  // Nous faisons une carte de la température-tension en fonction de la fiche technique du capteur. 10 est le pas de température lorsque le capteur et distance d'objet est 9CM.
int offset_vol = 0.520;      // Ce paramètre a été utilisé pour définir la tension de niveau intermédiaire lorsque le capteur est placé dans un environnement normal au bout de 10 minutes, la sortie capteur 0.
//Par exemple, la température ambiante est de 29 , mais le résultat est de 27 via le capteur, vous devez définir la référence à 0,520 ou plus, en fonction du changement de capteur. L'unité est V

int tempValue = 0;
int current_temp = 0;
float temp = 0;
float temp1 = 0;
float temp2 = 0;
const float reference_vol = 0.500;
unsigned char clear_num = 0; // Quand utiliser lcd pour afficher
float R = 0;

long res[100] = {
  318300, 302903, 288329, 274533, 261471, 249100, 237381, 226276, 215750, 205768,
  196300, 187316, 178788, 170691, 163002, 155700, 148766, 142183, 135936, 130012,
  124400, 119038, 113928, 109059, 104420, 100000, 95788, 91775, 87950, 84305,
  80830, 77517, 74357, 71342, 68466, 65720, 63098, 60595, 58202, 55916,
  53730, 51645, 49652, 47746, 45924, 44180, 42511, 40912, 39380, 37910,
  36500, 35155, 33866, 32631, 31446, 30311, 29222, 28177, 27175, 26213,
  25290, 24403, 23554, 22738, 21955, 21202, 20479, 19783, 19115, 18472,
  17260, 16688, 16138, 15608, 15098, 14608, 14135, 13680, 13242, 12819,
  12412, 12020, 11642, 11278, 10926, 10587, 10260, 9945, 9641, 9347,
  9063, 8789, 8525, 8270, 8023, 7785, 7555, 7333, 7118, 6911
};
//  CAPTEUR DE TEMPÉRATURE ******************************************************************




// AUDIO SHIELD ****************************************************************************

ISD1700 chip(10); // Initialiser chipcorder avec SS sur la broche numérique 10 d'Arduino
int apc = 0;
int vol = 0; //volume 0= MAX, 7=min
int startAddr = 0x10;
int endAddr = 0x2DF;
int inInt = 0;


// AUDIO SHIELD ******************************************************************************



// ECRAN LCD  ********************************************************************************
rgb_lcd lcd;

const int colorR = 255;
const int colorG = 0;
const int colorB = 0;

byte degrees[8] = {  // Signe degrés
  B00000,
  B01000,
  B10100,
  B01000,
  B00000,
  B00000,
  B00000,
  B00000,
};
// ECRAN LCD *********************************************************************************



// DETECTEUR DE MOUVEMENT ********************************************************************

const int buttonPin = 2; // DETECTEUR DE MOUVEMENT

// DETECTEUR DE MOUVEMENT ********************************************************************



// INTERVALLES DE TEMPS **********************************************************************

unsigned long previousMillis1 = 0;
unsigned long previousMillis2 = 0;
unsigned long previousMillis3 = 0;

unsigned long interval = 0; // Intervalle entre chaque "Il fait chaud" et "Il fait froid"
unsigned long interval2 = 10000; // Intervalle entre chaque "Etes vou la ?"


// INTERVALLES DE TEMPS **********************************************************************

// MODULE RTC **********************************************************************

DS1307 clock;

// MODULE RTC **********************************************************************


// ETAT DE LA BOITE **********************************************************************

byte lune[8] = {  // Signe degrés
  B00110,
  B01100,
  B11000,
  B11000,
  B11000,
  B11000,
  B01100,
  B00110
};

const int bouton = 4;
int etatbouton = 0;

// ETAT DE LA BOITE **********************************************************************

void setup()
{

  pinMode(buttonPin, INPUT);
  pinMode(bouton, INPUT);
  Serial.begin(9600);
  analogReference(INTERNAL);
  apc = apc | vol;
  apc = apc | 0x50;
  apc = apc | 0x80;
  apc = apc | 0x100;
  apc = apc | 0x800;
  Serial.println("Debut du programme");
  lcd.begin(16, 2);
  clock.begin();
}


void loop() {


  int time = clock.hour;
  digitalRead(bouton);
  etatbouton = digitalRead(bouton);

  if ( etatbouton == HIGH ) {   // il faut mettre l'heure (si l'heure est 8 alors lancé la boite par exemple

    measureSurTemp();
    clock.getTime();
    lcd.setCursor(1, 0);
    lcd.print(clock.hour, DEC);
    lcd.setCursor(3, 0);
    lcd.print(":");
    lcd.setCursor(4, 0);
    lcd.print(clock.minute, DEC);

    lcd.setCursor(11, 0);
    lcd.print(current_temp);

    lcd.createChar(0, degrees);
    lcd.setCursor(13, 0);
    lcd.write(byte(0));

    lcd.setCursor(14, 0);
    lcd.print("C");

    lcd.setCursor(4, 1);
    lcd.print(clock.dayOfMonth, DEC);
    lcd.setCursor(6, 1);
    lcd.print("/");
    lcd.setCursor(7, 1);
    lcd.print(clock.month, DEC);
    lcd.setCursor(8, 1);
    lcd.print("/");
    lcd.setCursor(9, 1);
    lcd.print(clock.year + 2000, DEC);

    lcd.setCursor(5, 0);
    lcd.print("     ");


    lcd.setCursor(3, 1);
    lcd.print(" ");


    // Affichage de l'heure et de la date
   
    chip.pu();
    unsigned long currentMillis = millis();
    unsigned long currentMillis2 = millis();

    if (current_temp >= 30 && currentMillis > previousMillis1 + interval  ) { // Il fait trop chaud
      interval = 10000;
      previousMillis1 = currentMillis;
      startAddr = 0x10;
      endAddr = 0x19;
      chip.set_play( startAddr, endAddr);
      chip.play();
      lcd.setRGB(255, 0, 0);
    }

    if (current_temp <= 26 && currentMillis > previousMillis2 + interval ) { // Il fait trop froid
      previousMillis2 = currentMillis;
      interval = 10000;
      startAddr = 0x22;
      endAddr = 0x30;
      chip.set_play( startAddr, endAddr);
      chip.play();
      lcd.setRGB(135, 206, 235);

    }

    if (digitalRead(buttonPin ) == LOW && currentMillis > previousMillis3 + interval2) { // Aucun mouvement detecte
      Serial.print("Aucun mouvement detecte \n");
      previousMillis3 = currentMillis2;
      startAddr = 0x30;
      endAddr = 0x43;
      chip.set_play( startAddr, endAddr);
      chip.play();

    }

    if (digitalRead(buttonPin ) == HIGH ) {  // Si on detecte mouvement le previous millis egale au temps de lancement du programme, comme ca si la boucle if de si on detecte personne se remet a 0 zerma
      Serial.print("Mouvement detecte, remise à 0 du compteur \n");
      previousMillis3 = currentMillis2;
    }
    digitalRead(bouton);
  }



  if ( etatbouton == LOW ) {

    Serial.print("Système en veille \n");
    lcd.setCursor(3 , 0);
    lcd.print("SYSTEME");
    lcd.setCursor(3 , 1);
    lcd.print("EN VEILLE");
    lcd.createChar(0, lune);
    lcd.setCursor(11, 0);
    lcd.write(byte(0));
    lcd.setCursor(1, 0);
    lcd.print("  ");
    lcd.setCursor(12, 0);
    lcd.print("     ");
    lcd.setCursor(12, 1);
    lcd.print("     ");

    digitalRead(bouton);
  }

}



float binSearch(long x) {

  int low, mid, high;
  low = 0;
  //mid=0;l
  high = 100;
  while (low <= high)
  {
    mid = (low + high) / 2;
    if (x < res[mid])
      low = mid + 1;
    else//(x>res[mid])
      high = mid - 1;
  }
  return mid;
}


float measureSurTemp() {

  unsigned char i = 0;
  float current_temp1 = 0;
  int signal = 0;
  tempValue = 0;

  for (i = 0; i < 10; i++) //
  {
    tempValue += analogRead(SUR_TEMP_PIN);
    delay(100);
  }
  tempValue = tempValue / 10;
  temp = tempValue * 1.1 / 1023;
  R = 2000000 * temp / (2.50 - temp);
  signal = binSearch(R);
  current_temp = signal - 1 + temp_calibration + (res[signal - 1] - R) / (res[signal - 1] - res[signal]);
  Serial.print("La temperature est de : ");
  Serial.print(current_temp);
  Serial.print("\n");

}




Title: Mesure de puissance reçue (en dB) sur un portable
Post by: Francky_McBurf on Apr 15, 2019, 08:11 pm
Bonjour,

Dans le cadre d'un projet de Terminale SI, je dois assurer la liaison entre une carte 4Duino (muni d'une carte wifi esp8266 intégrée) et un serveur distant (simuler par le réseau local de mon lycée).

Afin de déterminer si ma carte rentre dans les normes Européennes, concernant la puissance et la portée des appareils de télécommunication, je dois notamment mesurer la puissance de réception en fonction de la distance avec ledit serveur.


Jusqu'ici j'arrive à connecter ma carte à mon téléphone portable via un partage de co' , mais je ne sais pas quelle application utiliser, ni comment envoyer un message depuis ma carte sur mon portable.

Je m'en remets à vous pour avoir quelques conseils et petits coups de pouce.  :)

Cordialement.
Title: Demande d'aide pour comprendre le code
Post by: DebutantArduino on Apr 15, 2019, 11:31 pm
Salut, en cours on nous as donné un TP sur un afficheur LED et le professeur nous as demandé d'exploiter le code fourni, mais étant donné que je suis un grand débutant j'y comprends pas grand chose. Le professeur à déja mis des commentaires mais ça ne permet pas de tout comprendre alors je viens vers vous, si vous avez des moyens de comprendre le code ou quoi.. voir même le commenter x)
Je le mets à pièce-jointe car il est trop long..
Title: Re: Time
Post by: Mary779 on Apr 15, 2019, 11:34 pm
J'ai fait la simulation du programme mais quand le capteur pass à 1 et en même temps je le relâche à 0( ca veut dire on pas encore 5 secondes ) et après 5 secondes la lampe allume !!!
Mais J'ai besoin quand le capteur reste a 1 pendant 5 secondes aprés ca la lampe allume
Title: Re: Time
Post by: kamill on Apr 15, 2019, 11:43 pm
Mets ton programme en entier
Title: Re: Demande d'aide pour comprendre le code
Post by: icare on Apr 15, 2019, 11:49 pm
Bonjour,
Je pense que tu n'as pas bien saisi la philosophie du forum, ton précédent message c'est retrouvé dans le Bac-Ka-Poux-Bêle 2019 (http://forum.arduino.cc/index.php?topic=359876.msg4137721#msg4137721).
Alors lit les messages épinglés dans la section générale et demande au modérateur de déplacer (peut être s'il est de bonne humeur) ton topic car dans le bar, il y a peu de chances d'avoir des réponses.
Title: Re: Time
Post by: kamill on Apr 16, 2019, 12:02 am
Comment veux tu qu'on voit ce qui ne va pas.
Mets ton programme en entier
Title: Re: Time
Post by: Mary779 on Apr 16, 2019, 12:18 am
Code: [Select]
  static byte capteurPrecedent = LOW;
  static unsigned long debutAppui;

Void setup(){

pinMode(4,INPUT);
pinMode(6,OUTPUT);
}
void loop(){

  byte capteur = digitalRead(4);
  if (capteur != capteurPrecedent)
  {
    if (capteur == HIGH)
    {
      debutAppui = millis();
    }
    else
    {
      debutAppui = 0;
    }
    CapteurPrecedent = capteur;
    delay(20);             
  }
  if (debutAppui != 0 && millis() - debutAppui = 5000)
  {
    DigitalWrite(6,HIGH); delay(1000);digitalWrite(6,LOW);}//Après 5 sec exacte pas ou plus la lampe allume att 1sec et cesse d'alummer la lampe

  }
Title: Re: Time
Post by: kamill on Apr 16, 2019, 12:29 am
C'est vraiment ce programme que tu exécutes? car il y a plusieurs erreur de compilation dus à des majuscules intempestives.
Title: Re: Programmation Ardiuno
Post by: fdufnews on Apr 16, 2019, 01:12 pm
/Users/kevindasilva/Downloads/IR_le_vrai/IR_le_vrai.ino
Je ne sais pas comment tu as fait pour poster ton code, mais je crois qu'il y a eu une raté  ;D
Title: Re: Programmation Ardiuno
Post by: kamill on Apr 16, 2019, 01:14 pm
/Users/kevindasilva/Downloads/IR_le_vrai/IR_le_vrai.ino
Envoies nous ton PC qu'on voit ça. :smiley-mr-green:
Title: Re: Programmation Ardiuno
Post by: dbrion06 on Apr 16, 2019, 01:16 pm
N'oubliez pas d'envoyer aussi votre arduino, et ses perifériques.... (parce que là, vous vous trollez vous même)
Title: Re: Demande d'aide pour comprendre le code
Post by: DebutantArduino on Apr 16, 2019, 01:24 pm
Ah mince désolé je ne savais pas
Title: Vérifier le contenu d'une chaîne de caractère
Post by: Taftaf55 on Apr 16, 2019, 05:18 pm
Bonjour,
En utilisant le programme d'écriture de fichier disponible sur Arduino, je suis capable d'écrire des caractères comme 1,2,3 ou a, b, c en serial.println. Maintenant j'aimerai identifier un de ses caractères par exemple "b" et si ce caractère est reconnu une phrase s'affiche.
Auriez vous une solution à m'apporter svp ?
Title: [PROCESSING] QUIZ
Post by: EverybodyEthan on Apr 16, 2019, 05:41 pm
Bonjour à tous,

Je cherche à faire un quiz sur Processing pour mes exams de fin d'année

Cependant j'arrive pas à afficher la question et les réponses possibles sur la fenêtre graphique pour qu'après l'utilisateur puisse entrer sa réponse et que je puisse créer une boucle if en fonction de sa réponse

Du style : if (q1==2)
                println(".....")

              else if....


Merci !



Title: Re: Vérifier le contenu d'une chaîne de caractère
Post by: dbrion06 on Apr 16, 2019, 06:01 pm
Je vais faire deux hypothèses
a) que vos chaines de caractères sont des chaînes de caractères au sens de C (et pas des String-s-); s'il y a un problème avec cette hypothèse, poster le code que vous voulez améliorer
b) que vos chainens de caractères ont une longueur <=100 (en gros)

Je vous ai fait une fonction très rudimentaire  nommée pos qui vous sort l'indice de la première occurrence du caractère recherché (indice au  sens de C: le premier élément d'une chaîne a pour indice ... 0). Je l'ai soumise à des tests minimalistes

Code: [Select]

sh-4.1$ cat test.cpp && g++ test.cpp && ./a.exe
// testée sur PC
#include <stdint.h>
#include <stdio.h>
#include <string.h>
int8_t pos(const char * chaine, char c) {
 for (int8_t i = 0; i < strlen(chaine); i++) {
  if (chaine[i] == c) return i;
 }
 return - 1;
}
#ifndef ARDUINO
int main() {
  printf("%d \n",  pos("toto", 't')); // doit etre 0
  printf("%d \n",  pos("toto", 'a')); // doit etre -1
  printf("%d \n",  pos("tato", 'a')); // doit etre 1
  printf("%d \n",  pos("tatoo", 'o')); // doit etre 3
  return 0;
}
#endif
0
-1
1
3


==============
Edite
===============
Vous pouvez aussi faire appel à strchr (qui renvoye un pointeur vers la position de la première occurrence du caractère recherché, NULL si on n'a rien trouvé
 au lieu d'un entier ): l'hénaurme avantage est que c'est un grand standard (que j'ignorais, me fendant de 5 lignes de code....) maintenu depuis des décades...
L'appel est le même que ce que je suggèrais... je vous laisse le soin de le découvrir.




Title: Re: Time
Post by: Mary779 on Apr 16, 2019, 06:46 pm
Donc c'est qoui la solution ?
Title: Re: Time
Post by: dbrion06 on Apr 16, 2019, 07:03 pm
Une partie de la soultion pourrait consister à corriger le programme -vous avez accès à un compilateur: les horreurs de cAsSe se détectent plus facilement qu'avec un oeil)

si vous êtes paresseux, une version partiellement corrigée et non testée est la suivante

Code: [Select]

~ static byte capteurPrecedent = LOW;
  static unsigned long debutAppui;

void setup(){
  pinMode(4,INPUT);
  pinMode(6,OUTPUT);
}                                                                               
void loop() {                                                                   
  byte capteur = digitalRead(4);                                               
  if (capteur != capteurPrecedent) {                                           
    if (capteur == HIGH) {                                                     
      debutAppui = millis();                                                   
    } else {                                                                   
      debutAppui = 0;                                                           
    }                                                                           
    capteurPrecedent = capteur;                                                 
  //   delay(20);             // utilise pour debiunce; ne sert pas ici         
  }                                                                             
  if ((debutAppui != 0) && (millis() - debutAppui >= 5000)) {  // notez que j'ai réécrit votre test                 
    digitalWrite(6, HIGH);
    delay(1000);
   digitalWrite(6, LOW);}//Après 5 sec exacte pas ou plus la lampe allume att 1sec et cesse d'alummer la lampe

}

Title: Re: [PROCESSING] QUIZ
Post by: J-M-L on Apr 16, 2019, 07:15 pm
ici c'est le forum Arduino, pas Processing...
Title: Re: [PROCESSING] QUIZ
Post by: dfgh on Apr 16, 2019, 07:28 pm
hello
tu pars de très loin, peut être même que tu n'es jamais parti.

une recherche sur GG t'aurais envoyé sur le forum processing


ici, il y a un quiz (https://forum.processing.org/two/discussion/13602/help-with-a-quiz-and-multiple-choice)

comme le code qui y figure est incomplet, je l'ai complété avec le strict minimum (pour qu'il compile).
il compile, se lance et j'ai pu répondre à des questions.
débrouille toi avec ça.

Code: [Select]
int counter=0;
int correct=0;
int incorrect=0;
int noir=color(0,0,0);
void setup () {
  size (1100, 650);
  
  background(noir);                                // couleur fond fenetre
  surface.setResizable(true);
  smooth();        
}//lisse
void draw() { //7-8 questions
  if (counter==0) {
    clear();
    text("Welcome to the simple math quiz!, Press a to begin", 50, 50, 300, 500);
  }
  if (counter==1) {
    clear();
    text("What is 2+3?", 50, 50, 200, 400);
    text("B) 1", 100, 200);
    text("C) 3", 100, 250);
    text("D) 5", 100, 300);
    text("E) 4", 100, 350);
 // call();
    if (key == 'd') { //answer
      clear();
      correct+=1;
      text("Congrats, You are a pro. Press a to continue", 50, 50, 200, 400);
          text(correct, 500, 100);
    text(incorrect, 500, 200);
    }
    if (key == 'b') { //answer
      clear();
       incorrect+=1;
      text("You Failed. Press a to continue", 50, 50, 200, 400);
          text(correct, 500, 100);
    text(incorrect, 500, 200);
    }
    if (key == 'e') { //answer
      clear();
       incorrect+=1;
      text("You Failed. Press a to continue", 50, 50, 200, 400);
          text(correct, 500, 100);
    text(incorrect, 500, 200);
    }
    if (key == 'c') { //answer
      clear();
       incorrect+=1;
      text("You Failed. Press a to continue", 50, 50, 200, 400);
          text(correct, 500, 100);
    text(incorrect, 500, 200);
    }
  }
  if (counter==2) {
    clear();
    text("What is 8x2?", 50, 50, 200, 400);
    text("H) 8", 100, 200);
    text("G) 2", 100, 250);
    text("F) 16", 100, 300);
    text("I) 1862", 100, 350);
//call();
    if (key == 'f') { //answer
      clear();
       correct+=1;
      text("Congrats, You are a pro. Press a to continue", 50, 50, 200, 400);
          text(correct, 500, 100);
    text(incorrect, 500, 200);
    }
    if (key == 'g') { //answer
      clear();
       incorrect+=1;
      text("You Failed. Press a to continue", 50, 50, 200, 400);
          text(correct, 500, 100);
    text(incorrect, 500, 200);
    }
    if (key == 'h') { //answer
      clear();
       incorrect+=1;
      text("You Failed. Press a to continue", 50, 50, 200, 400);
          text(correct, 500, 100);
    text(incorrect, 500, 200);
    }
    if (key == 'i') { //answer
      clear();
       incorrect+=1;
      text("You Failed. Press a to continue", 50, 50, 200, 400);
          text(correct, 500, 100);
    text(incorrect, 500, 200);
    }
  }
}
void keyPressed() {
  if (key == 'z') { //testing only
    background(376);
  }
  if (key == 'a') {
    counter+= 1;
  }
};




je voie que JML t'as déjà renvoyé dans tes 18 mètres
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: J-M-L on Apr 16, 2019, 08:26 pm
si vous avez des moyens de comprendre le code ou quoi.
oui suffit d'apprendre à programmer, lire des tutos etc. bosser un peu quoi...c'est pas pour rien que c'est un TP...
Title: Re: Vérifier le contenu d'une chaîne de caractère
Post by: Taftaf55 on Apr 16, 2019, 08:34 pm
Bonjour,
merci pour votre réponse rapide.

Je vous présente mon programme :
Code: [Select]


/*
  SD card basic file example

 This example shows how to create and destroy an SD card file
 The circuit:
 * SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN)

 created   Nov 2010
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe

 This example code is in the public domain.

 */
#include <SPI.h>
#include <SD.h>

File myFile;

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  Serial.print("Initializing SD card...");

  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    while (1);
  }
  Serial.println("initialization done.");

  // open a new file and immediately close it:
  Serial.println("Creating example.txt...");
  myFile = SD.open("example.txt", FILE_WRITE);
  myFile.close();

  if (SD.exists("example.txt")) {
    Serial.println("a \n"
    "b \n"
    "c");
  } else {
    Serial.println("example.txt doesn't exist.");
  }

}

void loop() {
  // nothing happens after setup finishes.
}





Donc là on peut apercevoir les lettres a,b et c en Serial.println . Ma difficulté est de pouvoir une fois le programme lancé et une fois l'avoir lu, de par exemple, afficher : "La lettre c est reconnue" si il la reconnait ou le contraire si il ne la reconnait pas, une sorte de vérificateur de caractère quoi...  
Il faudrait sûrement ajouter un if ou une variable spécifique mais je ne sais vraiment pas... Donc si vous aurez une idée ce serait vraiment génial.

Merci encore en tout cas !  :)
Title: Vérification d'un caractère spécifique
Post by: Taftaf55 on Apr 16, 2019, 11:04 pm
Repost

Bonsoir,
Je présente ici mon problème : J'aimerai qu'une fois que mon programme effectué, une ligne de code permettrait de vérifier dans un Serial.println la présence de caractère spécifique renseigné, par exemple la lettre "c" dans le programme. (Une fois qu'il détecte la lettre c il affiche une phrase)
Voici mon programme effectué jusqu'à présent:
Code: [Select]


/*
  SD card basic file example

 This example shows how to create and destroy an SD card file
 The circuit:
 * SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN)

 created   Nov 2010
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe

 This example code is in the public domain.

 */
#include <SPI.h>
#include <SD.h>

File myFile;

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  Serial.print("Initializing SD card...");

  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    while (1);
  }
  Serial.println("initialization done.");

  // open a new file and immediately close it:
  Serial.println("Creating example.txt...");
  myFile = SD.open("example.txt", FILE_WRITE);
  myFile.close();

  if (SD.exists("example.txt")) {
    Serial.println("a \n"
    "b \n"
    "c");
  } else {
    Serial.println("example.txt doesn't exist.");
  }

}

void loop() {
  // nothing happens after setup finishes.
}


Par exemple, en schématisant : si Serial.println = "c" alors afficher "valeur reconnue".
Quelqu'un aurait une idée en me présentant une variable, ou quoi ?

Merci beaucoup en tout cas.
Title: Re: Time
Post by: Mary779 on Apr 16, 2019, 11:55 pm
J'ai déja fait la simulation mais j'ai rencontré un problème (j'ai le dit en haut) je sais pas prq !!!

Et plus que ca le programme fonctionne selement une fois   car quand je répète le même cycle (arduino reste calculer le temps ) le programme n'exécute plus .

s'il vous plait aidez moi ⚠️⚠️⚠️

Title: Re: Time
Post by: 68tjs on Apr 17, 2019, 12:22 am
Et c'est pour quoi ce joli projet ?
Je n'en sais pas plus que toi.
Toutefois je m'autorise à penser qu'une absence de réponse à ta question plus un certain énervement devant le temps qui passe sans apporter de réponse clé en main, laisse fortement suspecter un projet coefficient 12 qui avance caché.
Title: Re: Vérification d'un caractère spécifique
Post by: J-M-L on Apr 17, 2019, 01:12 am
Vous avez déjà fini 2 fois à la poubelle ....

Serial.println ça envoie un message sur le port série, c'est vous qui définissez quoi dire...
Title: Re: Vérification d'un caractère spécifique
Post by: jfs on Apr 17, 2019, 04:02 am
Repost

ReBakapoubelle....   :D


Voici mon programme effectué jusqu'à présent:
Code: [Select]


/*
  SD card basic file example

 This example shows how to create and destroy an SD card file
 The circuit:
 * SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN)

 created   Nov 2010
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe

 This example code is in the public domain.

 */
#include <SPI.h>
#include <SD.h>

File myFile;

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  Serial.print("Initializing SD card...");

  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    while (1);
  }
  Serial.println("initialization done.");

  // open a new file and immediately close it:
  Serial.println("Creating example.txt...");
  myFile = SD.open("example.txt", FILE_WRITE);
  myFile.close();

  if (SD.exists("example.txt")) {
    Serial.println("a \n"
    "b \n"
    "c");
  } else {
    Serial.println("example.txt doesn't exist.");
  }

}

void loop() {
  // nothing happens after setup finishes.
}

 
Tu maîtrises bien le copier-coller.... en gros rien n'est fait et c'est déjà la troisième fois et non on ne fera pas ton projet scolaire pour toi.
Title: [REPOST] Vérifier la présence de caractère
Post by: Taftaf55 on Apr 17, 2019, 06:48 am
Bonjour,
Je repost ici mon problème car je ne sais pas pourquoi mais mon topic  disparait à chaque fois comme si on le supprimait...  :o
Bref, je vous expose mon problème:

Je dois être capable d'écrire un fichier contenant des lettres et une fois le fichier lu, il doit être capable d'analyser (en gros) la présence d'une lettre. Par exemple, si j'écris dans mon fichier en Serial.println ("a \n" "b \n" "c" et si je lui dit de vérifier la présence du "c" alors il affiche comme message s'il le détecte "lettre c reconnu" par exemple. Mais le problème c'est que je ne sais pas quelle variable serait en mesure de faire ça...
Voici mon code jusqu'à présent
Code: [Select]


/*
  SD card basic file example

 This example shows how to create and destroy an SD card file
 The circuit:
 * SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN)

 created   Nov 2010
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe

 This example code is in the public domain

 */
#include <SPI.h>
#include <SD.h>

File myFile;

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  Serial.print("Initializing SD card...");

  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    while (1);
  }
  Serial.println("initialization done.");

  // open a new file and immediately close it:
  Serial.println("Creating example.txt...");
  myFile = SD.open("example.txt", FILE_WRITE);
  myFile.close();

  if (SD.exists("example.txt")) {
    Serial.println("a \n"
    "b \n"
    "c");
  } else {
    Serial.println("example.txt doesn't exist.");
  }

}

void loop() {
  // nothing happens after setup finishes.
}


Voilà, donc si quelqu'un aurait une idée ce serait super !
Merci beaucoup.
Title: Re: Programmation Ardiuno
Post by: Kevin2001 on Apr 17, 2019, 12:05 pm
#include <boarddefs.h> // Utilisation des bibliothèques
#include <IRremote.h>
#include <IRremoteInt.h>
#include <ir_Lego_PF_BitStreamEncoder.h>

//A utiliser pour récuperer le code envoyé par la telecomande

//Création des variables
int RECV_PIN = 3; // Connectée sur l'entrée digitale 3
int DIR1_PIN = 7; // Connectée sur l'entrée digitale 7
int VIT1_PIN = 6; // Connectée sur l'entrée digitale 6
int DIR2_PIN = 4; // Connectée sur l'entrée digitale 4
int VIT2_PIN = 5; // Connectée sur l'entrée digitale 5
int BOUT1_PIN = 10; // Connectée sur l'entrée digitale 10
int BOUT2_PIN = 11; // Connectée sur l'entrée digitale 11

IRrecv irrecv(RECV_PIN); // Récéption des ondes Infrarouges

decode_results results; // Décoder ce que la télécommande envoie

void setup() // Action effectuée une seule fois
{
  Serial.begin(9600); // Démarrer une liaison série avec l'ordinateur
  irrecv.enableIRIn(); // Démarrer le receveur
  pinMode(DIR1_PIN, OUTPUT);  // Définit la broche numérique DIR1 comme sortie
  pinMode(VIT1_PIN, OUTPUT);  // Définit la broche numérique VIT1 comme sortie
  pinMode(DIR2_PIN, OUTPUT);  // Définit la broche numérique DIR2 comme sortie
  pinMode(VIT2_PIN, OUTPUT);  // Définit la broche numérique VIT2 comme sortie
  pinMode(BOUT1_PIN, INPUT);  // Définit la broche numérique BOUT1 comme entrée
  pinMode(BOUT2_PIN, INPUT);  // Définit la broche numérique BOUT2 comme entrée
}

void loop() // Action répétée à l'infini
{ results.value=0; // Resultat = 0
  Serial.println (digitalRead (BOUT1_PIN)); // Afficher sur le moniteur série si il y a du courant sur le PIN 10
  irrecv.decode(&results); // Stocker le message envoyé par la télécommande
  irrecv.resume(); // Relancement de la lecture
 
if(results.value == 0XCC36FF5F){ // Avancer; Si le resultat de la touche de la télécommande correspond à celui indiquer
  avance(1,255); // Marche avant
  Serial.println("Avancer"); // Afficher dans le moniteur série "Avancer"
}
if(results.value == 0XCC1C9F5B){// Eteindre; Si le resultat de la touche de la télécommande correspond à celui indiquer
  avance(0,0); // Eteint
  Serial.println("Eteindre"); // Afficher dans le moniteur série "Eteindre"
}
if(results.value == 0X989D243A ){ // Reculer; Si le resultat de la touche de la télécommande correspond à celui indiquer
  avance(0,255); // Reculer
 
  Serial.println("Reculer"); // Afficher dans le moniteur série "Reculer"
}
  delay(100); // Délai de 100ms
if(digitalRead(BOUT1_PIN) == 1){ // Si le bouton 1 est actionné
  avance(0,0); // Eteint
}
if(digitalRead(BOUT2_PIN) == 1){ // Si le bouton 2 est actionné
  avance(0,0); // Eteint
}
}

void avance(int sens, int vitesse) // Partie moteur
{
  digitalWrite(DIR1_PIN, sens);
  analogWrite(VIT1_PIN, vitesse);
  digitalWrite(DIR2_PIN, sens);
  analogWrite(VIT2_PIN, vitesse);
}
Title: Re: Programmation Ardiuno
Post by: fdufnews on Apr 17, 2019, 01:06 pm
Il faut mettre le code en balise code sinon il apparait mal formaté voir ici rapidement (http://forum.arduino.cc/index.php?topic=315372.0)
Title: Problème inversion sens rotation servomoteur à courant continu
Post by: Calice on Apr 17, 2019, 07:52 pm
Bonjour,
J'essaye depuis un moment de changer le sens de rotation de mon servomoteur lorsque j'appuie sur un bouton.
J'ai vu sur des forums que pour un servomoteur à courant continu on faisait :
- servo.write(0) pour le faire tourner dans un sens
- servo.write(90) pour l'arrêter
- servo.write(180) pour le faire tourner dans l'autre sens

Seulement que je mette 0 ou 180 il tourne dans le même sens

Je vous joint mon code au cas où:

#include <Servo.h>

int bouton1 = 2;
int bouton2 = 3;
int bouton3 = 4;
int bouton4 = 5;
int i = 0;
Servo servo_pin_6;

void setup()
{
  pinMode(bouton1, INPUT);
  pinMode(bouton2, INPUT);
  pinMode(bouton3, INPUT);
  pinMode(bouton4, INPUT);
  servo_pin_6.attach(6);
}

void loop()
{
  while (digitalRead(bouton1)==HIGH)
  {
      while(digitalRead(bouton4)!=HIGH && digitalRead(bouton3)!= HIGH)
      {
        servo_pin_6.write(0); // j'avance dans un sens
        while(digitalRead(bouton2)==HIGH)
        {
          servo_pin_6.write(90); //je m'arrête
          delay(3000);//j'attends 3 sec
        }
      }
     if (digitalRead(bouton3)==HIGH)
     {
      servo_pin_6.write(90); //je m'arrête
      delay(1000); // j'attends 1 sec
      servo_pin_6.write(180); //je tourne dans l'autre sens
     } else {
       servo_pin_6.write(90); // je m'arrête
     }
       
  }
}

Si quelqu'un pouvait m'aider please !  ::)
Title: Problème de répétition
Post by: Mary779 on Apr 17, 2019, 10:02 pm
Code: [Select]
  static byte capteurPrecedent = LOW;
  static unsigned long debutAppui;

Void setup(){

pinMode(4,INPUT);
pinMode(6,OUTPUT);
}
void loop(){

  byte capteur = digitalRead(4);
  if (capteur != capteurPrecedent)
  {
    if (capteur == HIGH)
    {
      debutAppui = millis();
    }
    else
    {
      debutAppui = 0;
    }
    CapteurPrecedent = capteur;
    delay(20);             
  }
  if (debutAppui != 0 && millis() - debutAppui = 5000)
  {
    DigitalWrite(6,HIGH); delay(1000);digitalWrite(6,LOW);}//Après 5 sec exacte pas ou plus la lampe allume att 1sec et cesse d'alummer la lampe

  }



Salut ,
J'ai rencontré un problème concernant la répétition du programme ca veut dire il exécute selement une fois (depuis que le capteur pass à 1 il calcule 5 seconde (le capteur est encore à 1) aprés la lampe allume . Arduino toujours compte après  le capteur pass à0 puis en 1 mais là la lampe n'allume pas !!!  :(   :(

Des idées ?
Title: Re: Problème de répétition
Post by: bidouilleelec on Apr 17, 2019, 10:14 pm
if (debutAppui != 0 && millis() - debutAppui = 5000)

-->
if (debutAppui != 0 && millis() - debutAppui >= 5000)
Title: Re: Problème de répétition
Post by: jfs on Apr 17, 2019, 10:56 pm
Travail de bac caché....
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: Kevin2001 on Apr 18, 2019, 01:17 am
Il faut mettre le code en balise code sinon il apparait mal formaté voir ici rapidement (http://forum.arduino.cc/index.php?topic=315372.0)
Code: [Select]
#include <boarddefs.h> // Utilisation des bibliothèques
#include <IRremote.h>
#include <IRremoteInt.h>
#include <ir_Lego_PF_BitStreamEncoder.h>

//A utiliser pour récuperer le code envoyé par la telecomande

//Création des variables
int RECV_PIN = 3; // Connectée sur l'entrée digitale 3
int DIR1_PIN = 7; // Connectée sur l'entrée digitale 7
int VIT1_PIN = 6; // Connectée sur l'entrée digitale 6
int DIR2_PIN = 4; // Connectée sur l'entrée digitale 4
int VIT2_PIN = 5; // Connectée sur l'entrée digitale 5
int BOUT1_PIN = 10; // Connectée sur l'entrée digitale 10
int BOUT2_PIN = 11; // Connectée sur l'entrée digitale 11

IRrecv irrecv(RECV_PIN); // Récéption des ondes Infrarouges

decode_results results; // Décoder ce que la télécommande envoie

void setup() // Action effectuée une seule fois
{
  Serial.begin(9600); // Démarrer une liaison série avec l'ordinateur
  irrecv.enableIRIn(); // Démarrer le receveur
  pinMode(DIR1_PIN, OUTPUT);  // Définit la broche numérique DIR1 comme sortie
  pinMode(VIT1_PIN, OUTPUT);  // Définit la broche numérique VIT1 comme sortie
  pinMode(DIR2_PIN, OUTPUT);  // Définit la broche numérique DIR2 comme sortie
  pinMode(VIT2_PIN, OUTPUT);  // Définit la broche numérique VIT2 comme sortie
  pinMode(BOUT1_PIN, INPUT);  // Définit la broche numérique BOUT1 comme entrée
  pinMode(BOUT2_PIN, INPUT);  // Définit la broche numérique BOUT2 comme entrée
}

void loop() // Action répétée à l'infini
{ results.value=0; // Resultat = 0
  Serial.println (digitalRead (BOUT1_PIN)); // Afficher sur le moniteur série si il y a du courant sur le PIN 10
  irrecv.decode(&results); // Stocker le message envoyé par la télécommande
  irrecv.resume(); // Relancement de la lecture
 
if(results.value == 0XCC36FF5F){ // Avancer; Si le resultat de la touche de la télécommande correspond à celui indiquer
  avance(1,255); // Marche avant
  Serial.println("Avancer"); // Afficher dans le moniteur série "Avancer"
}
if(results.value == 0XCC1C9F5B){// Eteindre; Si le resultat de la touche de la télécommande correspond à celui indiquer
  avance(0,0); // Eteint
  Serial.println("Eteindre"); // Afficher dans le moniteur série "Eteindre"
}
if(results.value == 0X989D243A ){ // Reculer; Si le resultat de la touche de la télécommande correspond à celui indiquer
  avance(0,255); // Reculer
 
  Serial.println("Reculer"); // Afficher dans le moniteur série "Reculer"
}
  delay(100); // Délai de 100ms
if(digitalRead(BOUT1_PIN) == 1){ // Si le bouton 1 est actionné
  avance(0,0); // Eteint
}
if(digitalRead(BOUT2_PIN) == 1){ // Si le bouton 2 est actionné
  avance(0,0); // Eteint
}
}

void avance(int sens, int vitesse) // Partie moteur
{
  digitalWrite(DIR1_PIN, sens);
  analogWrite(VIT1_PIN, vitesse);
  digitalWrite(DIR2_PIN, sens);
  analogWrite(VIT2_PIN, vitesse);
}
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: jfs on Apr 18, 2019, 07:12 am
Il faut mettre le code en balise code sinon il apparait mal formaté voir ici rapidement (http://forum.arduino.cc/index.php?topic=315372.0)
Code: [Select]
#include <boarddefs.h> // Utilisation des bibliothèques
#include <IRremote.h>
#include <IRremoteInt.h>
#include <ir_Lego_PF_BitStreamEncoder.h>

//A utiliser pour récuperer le code envoyé par la telecomande

//Création des variables
int RECV_PIN = 3; // Connectée sur l'entrée digitale 3
int DIR1_PIN = 7; // Connectée sur l'entrée digitale 7
int VIT1_PIN = 6; // Connectée sur l'entrée digitale 6
int DIR2_PIN = 4; // Connectée sur l'entrée digitale 4
int VIT2_PIN = 5; // Connectée sur l'entrée digitale 5
int BOUT1_PIN = 10; // Connectée sur l'entrée digitale 10
int BOUT2_PIN = 11; // Connectée sur l'entrée digitale 11

IRrecv irrecv(RECV_PIN); // Récéption des ondes Infrarouges

decode_results results; // Décoder ce que la télécommande envoie

void setup() // Action effectuée une seule fois
{
  Serial.begin(9600); // Démarrer une liaison série avec l'ordinateur
  irrecv.enableIRIn(); // Démarrer le receveur
  pinMode(DIR1_PIN, OUTPUT);  // Définit la broche numérique DIR1 comme sortie
  pinMode(VIT1_PIN, OUTPUT);  // Définit la broche numérique VIT1 comme sortie
  pinMode(DIR2_PIN, OUTPUT);  // Définit la broche numérique DIR2 comme sortie
  pinMode(VIT2_PIN, OUTPUT);  // Définit la broche numérique VIT2 comme sortie
  pinMode(BOUT1_PIN, INPUT);  // Définit la broche numérique BOUT1 comme entrée
  pinMode(BOUT2_PIN, INPUT);  // Définit la broche numérique BOUT2 comme entrée
}

void loop() // Action répétée à l'infini
{ results.value=0; // Resultat = 0
  Serial.println (digitalRead (BOUT1_PIN)); // Afficher sur le moniteur série si il y a du courant sur le PIN 10
  irrecv.decode(&results); // Stocker le message envoyé par la télécommande
  irrecv.resume(); // Relancement de la lecture
  
if(results.value == 0XCC36FF5F){ // Avancer; Si le resultat de la touche de la télécommande correspond à celui indiquer
  avance(1,255); // Marche avant
  Serial.println("Avancer"); // Afficher dans le moniteur série "Avancer"
}
if(results.value == 0XCC1C9F5B){// Eteindre; Si le resultat de la touche de la télécommande correspond à celui indiquer
  avance(0,0); // Eteint
  Serial.println("Eteindre"); // Afficher dans le moniteur série "Eteindre"
}
if(results.value == 0X989D243A ){ // Reculer; Si le resultat de la touche de la télécommande correspond à celui indiquer
  avance(0,255); // Reculer
 
  Serial.println("Reculer"); // Afficher dans le moniteur série "Reculer"
}
  delay(100); // Délai de 100ms
if(digitalRead(BOUT1_PIN) == 1){ // Si le bouton 1 est actionné
  avance(0,0); // Eteint
}
if(digitalRead(BOUT2_PIN) == 1){ // Si le bouton 2 est actionné
  avance(0,0); // Eteint
}
}

void avance(int sens, int vitesse) // Partie moteur
{
  digitalWrite(DIR1_PIN, sens);
  analogWrite(VIT1_PIN, vitesse);
  digitalWrite(DIR2_PIN, sens);
  analogWrite(VIT2_PIN, vitesse);
}

Trop tard....
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: Kevin2001 on Apr 18, 2019, 12:16 pm
trop tard?
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: Mary779 on Apr 18, 2019, 12:46 pm
if (debutAppui != 0 && millis() - debutAppui = 5000)

-->
if (debutAppui != 0 && millis() - debutAppui >= 5000)
Quand je met >= la lampe reste à 1 mais c'est ce que je veux
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: J-M-L on Apr 18, 2019, 02:03 pm
S'il vous plaît votre aide
Mary - votre post a été mis dans la poubelle du bar...

lisez comment utiliser le forum (les posts épinglés en haut du forum comme "Bien éditer son post pour les nuls (http://forum.arduino.cc/index.php?topic=394754.0)" , "Faire un Nouveau Sujet ou le corriger avec les Balises... (http://forum.arduino.cc/index.php?topic=315372.0)" et "Règles du forum francophone (http://forum.arduino.cc/index.php?topic=546956.0)"), et refaites un post "propre" dans la bonne section
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: Mary779 on Apr 18, 2019, 02:24 pm
C'est vraiment ce programme que tu exécutes? car il y a plusieurs erreur de compilation dus à des majuscules intempestives.
Salut , concernant le programme la lampe reste à 1 pr toujours (>=5000) . comment je peux la mettre à 0 ? S'il vous plaît votre aide
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: J-M-L on Apr 18, 2019, 02:37 pm
Salut , concernant le programme la lampe reste à 1 pr toujours (>=5000) . comment je peux la mettre à 0 ? S'il vous plaît votre aide

AGAIN...


Mary - votre post a été mis dans la poubelle du bar...

lisez comment utiliser le forum (les posts épinglés en haut du forum comme "Bien éditer son post pour les nuls (http://forum.arduino.cc/index.php?topic=394754.0)" , "Faire un Nouveau Sujet ou le corriger avec les Balises... (http://forum.arduino.cc/index.php?topic=315372.0)" et "Règles du forum francophone (http://forum.arduino.cc/index.php?topic=546956.0)"), et refaites un post "propre" dans la bonne section
Title: error stray /357
Post by: vtec35 on Apr 18, 2019, 02:56 pm
bonjour, tout le monde sur un code maison (pas un copier coller du net), j ai cette erreur qui est apparu soudainement, et qui apparait sur les anciennes versions egalement, du coup je ne comprend pas


merci de votre aide
Title: Commande non-stop
Post by: Mary779 on Apr 18, 2019, 03:01 pm
Code: [Select]
static byte capteurPrecedent = LOW;
static unsigned long debutAppui;
Void setup(){

pinMode(4,INPUT);
pinMode(6,OUTPUT);

void loop(){

byte capteur = digitalRead(4);
if (capteur !=capteurPrecedent){
if (capteur == HIGH)
 {debutAppui = millis(); }
else{ debutAppui = 0;}
CapteurPrecedent = capteur;
delay(20);
}
 if (debutAppui != 0 ; millis() - debutAppui>= 5000)

{DigitalWrite(6,HIGH);}


Salut , concernant le programme en haut la lampe reste à 1 pr toujours car on a
Code: [Select]
millis()-debutAppui>=5000
 . comment je peux la mettre à 0 ?

sachant que j'ai testé
Code: [Select]
else{debutAppui=0 ; digitalWrite(6,LOW);}

s'il vous plaît votre aide
Title: Re: Commande non-stop
Post by: dbrion06 on Apr 18, 2019, 03:04 pm
debutAppui=millis() ;
Title: Re: error stray /357
Post by: hbachetti on Apr 18, 2019, 03:31 pm
La première ligne de ton sketch comporte un caractère invisible.

Après 160 posts, balancer une copie d'écran c'est un peu gonflé, surtout aussi illisible.

Tu n'as pas remarqué le bouton "Recopier les messages d'erreur" en bas à droite de l'IDE ?

Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: Mary779 on Apr 18, 2019, 04:59 pm
Code: [Select]


static byte capteurPrecedent = LOW;
static unsigned long debutAppui;

void setup(){
  pinMode(4,INPUT);
  pinMode(6,OUTPUT);
}

void loop(){

  byte capteur = digitalRead(4);
  if (capteur != capteurPrecedent)
  {
    if (capteur == HIGH)
    {
      debutAppui = millis();
    }
    else
    {
      debutAppui = 0;
    }
    CapteurPrecedent = capteur;
    delay(20);             
  }
  if (debutAppui != 0 && millis() - debutAppui> = 5000)
  {
    DigitalWrite(6,HIGH);}

  }


concernant le programme en haut la lampe reste à 1 pr toujours car on a
Code: [Select]
millis()-debutAppui>=5000


comment je peux la mettre à 0 ?  sachant que j'ai testé 
Code: [Select]
else{debutAppui=0 ; digitalWrite(6,LOW);}


Title: Problème pilotage moteur pas à pas
Post by: Qmon on Apr 18, 2019, 05:47 pm
Bonjour à toutes et tous,

Je rencontre un problème avec le pilotage de mon moteur pas à pas.

J'essaye de piloter un moteur NEMA23 ref 57HS76-3004A08 que j'ai préalablement branché à un driver TB6600.

J'utilise Visual Studio avec quoi j'ai fait une fenêtre graphique pour rentrer manuellement la vitesse à laquelle je souhaite que mon moteur tourne.

Je rentre donc ma condition de vitesse "RPM" sur ma fenêtre de pilotage et en backoffice, je transforme cette condition en millisecondes pour envoyer cette commande au programme d'arduino qui sera mon délai entre chaque phase.

Je fais donc le calcul suivant : Durée imp = (60 * 1000) / (RPM*200)
où 60 est la conversion de trs/min en trs/sec
1000 est la conversion de secondes en millisecondes
200 est la résolution de mon moteur (data sheet donne 1,8° step angle donc pour 1 tour ca donne 200 pas par tour)

Pour par exemple une condition de 60 trs/min, le calcul donne 5 millisecondes, valeur que je renvoi à mon programme arduino.

Dans mon programme arduino, je pilote le moteur de la méthode suivante :
Code: [Select]

const int ENA = 5;
const int DIR = 6;
const int PUL = 7;  

String recu, motorState = "OFF", stepState = "Full step", wiseState = "Anti Clockwise", speedState = "0.00";
String message;
int duree = 0;  // Durée d'un pas
bool doitTourner = false;
bool affVitesse = false;
int resolution = 200;
float N=0;

void setup()
{
 Serial.begin(250000);    //Serial Monitor
 pinMode(PUL, OUTPUT);
 pinMode(DIR, OUTPUT);
 pinMode(ENA, OUTPUT);

 // Initialisation
 digitalWrite(ENA, LOW);
 digitalWrite(DIR, LOW);
 digitalWrite(PUL,HIGH);
}

void loop()
{
 // Si on recoit quelque chose, sinon on rien
 if (Serial.available() > 0)
 {
   recu = Serial.readStringUntil('\n');
   if (recu == "STATUS")
   {
     // Réglages actuels
     message = motorState + ";" + wiseState + ";" + stepState + ";" + speedState + ";";
     Serial.println(message);
   }
   else // Protocol
   {
     switch (recu[0])
     {
       // Réglage de la demi période du signal step
       case '0' :
       case '1' :
       case '2' :
       case '3' :
       case '4' :
       case '5' :
       case '6' :
       case '7' :
       case '8' :
       case '9' :  duree = recu.toInt();
                   affVitesse = true;
                   break;
       
       // Demande de mise en Marche
       case 'M' :  digitalWrite(ENA, HIGH);
                   motorState = "ON";
                   doitTourner = true;
                   affVitesse = true;
                   break;
     
       // Demande Stop moteur
       case 'S' :  digitalWrite(ENA, LOW);
                   motorState = "OFF";
                   affVitesse = false;
                   doitTourner = false;
                   break;
       // Demande sens de rotation Anti horaire
       case 'A' :  digitalWrite(DIR, HIGH);
                   wiseState = "Anti Clockwise";
                   //Serial.println(wiseState);
                   break;
       
       // Demande sens rotation horaire (Reverse)
       case 'R' :  digitalWrite(DIR, LOW);
                   wiseState = "Clockwise";
                   //Serial.println(wiseState);
                   break;
       
       // Demande Vitesse +
       case '+' :  duree = duree - 1;
                   break;
       
       // Demande Vitesse -
       case '-' :  duree = duree + 1;
                   break;
       
       // Demande résolution
       case 'F' : // Full step
                   //digitalWrite(ms3Pin, LOW);
                  // digitalWrite(ms2Pin, LOW);
                  // digitalWrite(ms1Pin, LOW);
                   resolution = 200; //200 pas par tour, step angle = 1,8°
                   stepState = "Full step";
                   break;
                   
     // Témoin transmission de données
     delay(100);

     // Calcul vitesse de rotation (car je le renvoi pour l'afficher sur ma fenetre de visual studio)
     if (affVitesse)
     {
       N = (60*1000) / (duree*resolution);
     }
     else
     {
       N = 0;
     }
     speedState = String(N);
     
     // Préparation du message
     message = motorState + ";" + wiseState + ";" + stepState + ";" + speedState + ";";

     // Transmission du message
     Serial.println(message);
   }
 }
 // Faire tourner le moteur
 if (doitTourner)
 {
   tourne(duree);
 }
 else digitalWrite(PUL, LOW);
}

void tourne(int d)
{
 digitalWrite(PUL, LOW);
 delayMicroseconds(d);
 digitalWrite(PUL, HIGH);
 delayMicroseconds(d);
}


Malheureusement, quand je lance le démarrage du moteur avec la condition de 60 tours/min qui n'est pas une vitesse trop lente ni trop rapide, le moteur ronronne mais ne tourne pas...

Mes calculs me semblent juste, je me demande donc si ma fonction et ma méthode de pilotage du moteur grâce au délai entre chaque phase est judicieuse...

Merci par avance pour votre retour et votre aide.

Arduinonement.
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: J-M-L on Apr 18, 2019, 08:02 pm
bla bla bla
MARY VOUS N'ECOUTEZ PAS CE QU'ON VOUS DIT... BYE
Title: Re: Problème pilotage moteur pas à pas
Post by: J-M-L on Apr 18, 2019, 08:06 pm
lisez comment utiliser le forum (les posts épinglés en haut du forum comme "Bien éditer son post pour les nuls (http://forum.arduino.cc/index.php?topic=394754.0)" , "Faire un Nouveau Sujet ou le corriger avec les Balises... (http://forum.arduino.cc/index.php?topic=315372.0)" et "Règles du forum francophone (http://forum.arduino.cc/index.php?topic=546956.0)"), et faites un post "propre"
Title: Re: Convertir coord. GPGLL en longitude et latitude.
Post by: touftouf on Apr 18, 2019, 10:55 pm
C'est pas une variable différente par caractère qu'il te faut c'est une variable qui contienne la valeur numérique représentée par chaque groupe de caractère.

Il faudrait déjà savoir comment tu récupères lesdites informations pour savoir comment les traiter.
Poste déjà ton code qui récupère les données après on verra.
String inputString = ""; // a string to hold incoming data
boolean stringComplete = false; // whether the string is complete
String signal = "$GPGLL";
void setup() {
    // initialize serial:
    Serial.begin(9600);
    // reserve 200 bytes for the inputString:
    inputString.reserve(200);
}

void loop() {
    // print the string when a newline arrives:
    if (stringComplete) {
        String BB = inputString.substring(0, 6);
        if (BB == signal) {
            String LAT = inputString.substring(7, 17);
            int LATperiod = LAT.indexOf('.');
            int LATzero = LAT.indexOf('0');
            if (LATzero == 0) {
                LAT = LAT.substring(1);
            }

            String LON = inputString.substring(20, 31);
            int LONperiod = LON.indexOf('.');
            int LONTzero = LON.indexOf('0');
            if (LONTzero == 0) {
                LON = LON.substring(1);
            }

            Serial.println(LAT);
            Serial.println(LON);

        }

        // Serial.println(inputString);
        // clear the string:
        inputString = "";
        stringComplete = false;
    }
}

/*
SerialEvent occurs whenever a new data comes in the
hardware serial RX. This routine is run between each
time loop() runs, so using delay inside loop can delay
response. Multiple bytes of data may be available.
*/
void serialEvent() {
    while (Serial.available()) {
        // get the new byte:
        char inChar = (char) Serial.read();
        // add it to the inputString:
        inputString += inChar;
        // if the incoming character is a newline, set a flag
        // so the main loop can do something about it:
        if (inChar == '\n') {
            stringComplete = true;
        }
    }
}



C'est ça le code. Derien
Title: URGENT
Post by: barzizoui on Apr 23, 2019, 01:49 pm
Salut ,
s'il vous plait j'ai un projet realiser un tiroir électrique, je suis bloquer dans un point , je dois faire retourner le moteur juste quand  je touche le tiroir(sans capteur de contact), je dois faire quoi ? j'ai déja le shiled moteur l298n,l' arduino.....

merci
Title: Re: URGENT
Post by: dbrion06 on Apr 23, 2019, 02:01 pm
Qui vous a infligé cette épreuve?
Title: Re: URGENT
Post by: 68tjs on Apr 23, 2019, 02:02 pm
Quote
je dois faire retourner le moteur juste quand  je touche le tiroir
Tu fais un trou dans la face avant du tiroir,
Tu y  passe la main
Tu retourne le moteur avec ta main

Je crains fortement que ton projet pour le bac va retrouver d'autres demandes inacceptables dans le
Bak Ka Poux bêle  2019             https://forum.arduino.cc/index.php?topic=359876.0 (https://forum.arduino.cc/index.php?topic=359876.0)

PS : Cher Modérateur ne déplace pas trop vite le message à la poubelle qu'il ait le temps de lire nos réponses.
Title: Re: URGENT
Post by: lesept on Apr 23, 2019, 02:43 pm
Lis cette page (https://openclassrooms.com/fr/courses/2778161-programmez-vos-premiers-montages-avec-arduino/3285333-le-moteur-a-courant-continu-partie-1-transistors-et-sorties-pwm) et la partie 2 pour apprendre comment contrôler un moteur avec un L298N
Title: asservir un moteur pas a pas en position programmable avec un Arduino
Post by: faux_jetons on Apr 30, 2019, 03:40 pm
salut
je touche un peux a tous
pour mon compte personnel  chez moi
je possède des machine outils d établie est divers outils pour aller avec les machines

les liens du forum usinages

https://www.usinages.com/threads/zay7045fg-1-dro-sino-sds6-avec-avance-automatique-de-la-broche.60797/


entre autre je possède un plateaux diviseur/circulaire 1/90 est un diviseur semi universel 1/40
c est pour c est deux outils pour le fraisage que j interviens sur ce forum

j ai découvertes Arduino a Noël  

avec les programme que j ai trouver sur le net j ai passer les deux  diviseur manuelle en cnc
j ai utiliser le montage avec l Arduino pour faire une couronne de 42 dents

j ai pas d avance automatique de synchroniser avec la machine  

c est pour cela que je joint a mon montage un rotary encodeur incrémental   e6b2-cwzc6
avec une résolution de 2500 p/r qui sera synchroniser avec l avance de  la machine
le branchement de l encodeur que j ai fait  - / + 0/25v ( outA A3,  outB A4,  outZ A5 )

comme le diviseur n est pas débrayable  j ai joint au montage un joystick
A1;  axes X joystick  A2; axes y joystick 2; Définition bouton centrale

le montage est fait dans un boitier avec,les adaptations
pour cela je vous demande s il vous et possible d avoir les base d un programme  
pour faire fonctionner mon montage  avec encodeur incrémental

ci joint des photos est le programme que j utilise pour comprendre

je vous remercie d avance

#include <Arduino.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
#include <AccelStepper.h>

const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'.','0','#','D'}
};

byte rowPINS[ROWS] = {11,10,9,8};
byte colPINS[COLS] = {7,6,5,4};

Keypad kpd = Keypad(makeKeymap(keys),rowPINS,colPINS, ROWS, COLS);

LiquidCrystal_I2C lcd(0x27,20,4);           // set the LCD address


const int stp = 12;                         //connect pin 12 to step
const int dir = 13;                         // connect pin 13 to dir
const int Multiplier = 100;
const int stepdelay = 1;
float Degrees = 0;                           //Degrees from Serial input
float ToMove = 0;                            //Steps to move
float Divisions;
float current = 0;
int Mode = 0;
int speed = 0;                                 //read from potentiometer
int maxspeed = 5000;                           //max speed in steps per sec
int stepspeed = 1000;                          //speed in steps per sec
byte percentage = 0;                          //speed % on LCD
AccelStepper stepper(1, stp, dir);            //(mode:1 = driver)

void setup()
{
lcd.init();                                  // initialize the lcd
pinMode(stp, OUTPUT);
pinMode(dir, OUTPUT);
pinMode(A0, INPUT);                         // initialize the potentiometer
Serial.begin(9600);
stepper.setMaxSpeed(maxspeed);               // stepper max speed
stepper.setSpeed(stepspeed);                 // stepper speed
stepper.setAcceleration(90);                 // stepper acceleration: not needed
stepper.setCurrentPosition(0);               // stepper current position

// Print welcome message to the LCD.
lcd.backlight();     lcd.print("Table Rotative");
lcd.setCursor(0,1);  lcd.print("Version 2018  ");
lcd.setCursor(0,2);  lcd.print(" Vibram ");
delay(2000);

Mode = GetMode();
}

void software_Reset()                               // Restarts program
{
asm volatile ("  jmp 0");
}

float GetNumber()
{
 float num = 0.00;
 float decimal = 0.00;
 float decnum = 0.00;
 int counter = 0;
 char key = kpd.getKey();
 lcd.setCursor(0,0);   lcd.print("Entrer degres puis");
 lcd.setCursor(0,1);   lcd.print("Appuyer =>
 lcd.setCursor(0,3);   lcd.print("RAZ => [D]");
 lcd.setCursor(8,2);
 bool decOffset = false;

 while(key != '#')
 {
    switch (key)
    {
       case NO_KEY:
          break;

       case '.':
         if(!decOffset)
         {
           decOffset = true;
         }
          lcd.print(key);
          break;

       case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
         if(!decOffset)
         {
          num = num * 10 + (key - '0');
          lcd.print(key);
         }
         else if((decOffset) && (counter <= 1))
         {
          num = num * 10 + (key - '0');
          lcd.print(key);
          counter++;
         }
         break;

       case 'D':
         software_Reset();
       break;
    }

    decnum = num / pow(10, counter);
    key = kpd.getKey();
 }
return decnum;
}

float GetDivisions()
{
 float num = 0.00;
 char key = kpd.getKey();
 lcd.clear();
 lcd.setCursor(0,0);   lcd.print("Entrer Nbr Div puis");
 lcd.setCursor(0,1);   lcd.print("appuyer =>
 lcd.setCursor(0, 3);   lcd.print("echap    =>[D]");
 lcd.setCursor(8,2);

 while(key != '#')
 {
    switch (key)
    {
       case NO_KEY:
          break;

       case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
          num = num * 10 + (key - '0');
          lcd.print(key);
          break;

      case 'D':
        software_Reset();
        break;
    }
    key = kpd.getKey();
 }

return num;
}
int GetMode()
{
int mode = 0;
lcd.setCursor(0,0);    lcd.print("Selection du Mode");
lcd.setCursor(0,1);    lcd.print(" Divisions => A  ");
lcd.setCursor(0,2);    lcd.print(" Degres    => B  ");


while(mode == 0)
{
char key = kpd.getKey();
if(key == 'A')
{
  mode = 1;
}

else if(key == 'B')
{
  mode = 2;
}
}

lcd.clear();
return mode;
}

void loop()
{
if(Mode == 1)
{
  Divisions = GetDivisions();
  Degrees = (360/Divisions);
}
if(Mode == 2)
{
  Degrees = GetNumber();
}
  lcd.clear();
  lcd.setCursor(0,3);     lcd.print("Av.[A] Arr Fin[C]");
  char key = kpd.getKey();
  while(key != 'C')
  {
  speed = analogRead(A0);
  stepspeed = map(speed,0,1023,1,maxspeed);
  percentage = map(speed,0,1023,1,100);
  stepper.setSpeed(stepspeed);
  lcd.setCursor(0,0);      lcd.print("POS:");     lcd.print(current);    
  lcd.setCursor(11,0);     lcd.print("Vit.");
  lcd.setCursor(17,0);     lcd.print("   ");
  lcd.setCursor(17,0);     lcd.print(percentage); lcd.print("%");
  lcd.setCursor(0,1);      lcd.print("DPM:");     lcd.print(Degrees);
    key = kpd.getKey();

    if(key == 'A')
    {
      if(current + Degrees <= 360)
      {
       current = ((stepper.currentPosition()/ Multiplier) + Degrees);
      }
      else
      {
       current = (stepper.currentPosition()/ Multiplier) + Degrees-360;
      }

     ToMove = Degrees*Multiplier*+1;
     stepper.setSpeed(stepspeed);
     Serial.println(ToMove);
     stepper.move(ToMove);
     Serial.println(ToMove);
     stepper.setSpeed(-stepspeed);
     Serial.println(stepper.speed());
     lcd.setCursor(0,2);
     lcd.print("App.Bouton =>Av.");
    }
    if(key == 'B')
    {
      if(current - Degrees >= 0)
      {
       current = ((stepper.currentPosition()/ Multiplier) - Degrees);
       }
       else
       {
        current = (stepper.currentPosition()/ Multiplier) - Degrees + 360;
       }
     ToMove = Degrees*Multiplier*-1;
     stepper.move(ToMove);
     Serial.println(ToMove);
     stepper.setSpeed(-stepspeed);
     Serial.println(stepper.speed());
     lcd.setCursor(0,2);
     lcd.print("App.Bouton =>Arr.");
     }

  if (buttonState == LOW) {
    lcd.setCursor(0,2);
     lcd.print("Rotation P=>Bouton");
     while (stepper.distanceToGo() != 0)
      {
      stepper.runSpeedToPosition();
      }
      lcd.setCursor(0,2);
     lcd.print("                    ");
    }
   }
   lcd.clear();
}
Title: Arduino pont en H
Post by: jules_7626 on May 02, 2019, 08:41 am
Bonjour à tous , j'ai un programme qui doit faire marcher un moteur avec un télécommande infrarouge . Le probleme est que le programme ne lit qu'une seule valeur....

#include <boarddefs.h>
#include <IRremote.h>
#include <IRremoteInt.h>
#include <ir_Lego_PF_BitStreamEncoder.h>
int pin1moteur1 = 12;
int pin2moteur1 = 13;

int pin1verrin1 = 2;
int pin2verrin1 = 3;

int pin1verrin2 = 4;
int pin2verrin2 = 5;
int DIN_RECEPTEUR_INFRAROUGE = 6;
decode_results messageRecu;

IRrecv monRecepteurInfraRouge (DIN_RECEPTEUR_INFRAROUGE);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  monRecepteurInfraRouge.enableIRIn(); // Démarrer le récepteur
  pinMode(pin1moteur1, OUTPUT);
  pinMode(pin2moteur1, OUTPUT);
  pinMode(pin1verrin1, OUTPUT);
  pinMode(pin2verrin1, OUTPUT);
  pinMode(pin1verrin2, OUTPUT);
  pinMode(pin2verrin2, OUTPUT);
  pinMode(DIN_RECEPTEUR_INFRAROUGE, INPUT);
}

void loop() {
  // put your main code here, to run repeatedly:


  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  messageRecu.value = 0;
  if (monRecepteurInfraRouge.decode(&messageRecu)) // Si le récepteur décode le message recu
    Serial.println(messageRecu.value); // Affichage sur le moniteur série du message recu
  {
    digitalRead(messageRecu.value);
    if (messageRecu.value == 0xFF30CF)
    {

      digitalWrite(pin1moteur1 , HIGH);
      digitalWrite(pin2moteur1, LOW);
      monRecepteurInfraRouge.resume();
    }

  }

  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  messageRecu.value = 0;
  {
    digitalRead(messageRecu.value);
    if (messageRecu.value == 0xFF18E7)
    {

      digitalWrite(pin1verrin1, LOW);
      digitalWrite(pin2verrin1, HIGH);
      monRecepteurInfraRouge.resume();

    }

  }



  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  messageRecu.value = 0;
  {
    digitalRead(messageRecu.value);
    if (messageRecu.value == 0xFF7A85)
    {

      digitalWrite(pin1verrin2, HIGH);
      digitalWrite(pin2verrin2, LOW);
      monRecepteurInfraRouge.resume();

    }

  }



  /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


}
Title: Re: Arduino pont en H
Post by: fdufnews on May 02, 2019, 09:08 am
Je pense qu'une partie de la solution passe par là  (https://forum.arduino.cc/index.php?topic=394754.0) et là (https://forum.arduino.cc/index.php?topic=315372.0)
Title: projet Terminal STI2D
Post by: raph13 on May 03, 2019, 06:30 pm
bonjour j'ai trouvé un programme me permettant d'envoyer un SMS avec un GSM sur arduino et il ne marche pas c'est un programme qui a été fait en 2012, j'ai essayer de le modifier afin qu'il marche mais je rencontre toujours des problème avec s'il vous plais aider mon je prépare mon bac et j'aurais vraiment besoin d'aide
voila le lien du programme que j'ai trouvé: https://www.arduino.cc/en/Tutorial/GSMExamplesSendSMS




et voila les modification que j'y est apporter :// Include the GSM library
#include <GSM.h>

#define PINNUMBER ""

// initialize the library instance
GSM gsmAccess;
GSM_SMS sms;

void setup()
{
  // initialize serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial)
  {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  Serial.println("SMS Messages Sender");

  // connection state
  boolean notConnected = true;

  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  while (notConnected)
  {
    if (gsmAccess.begin(PINNUMBER) == GSM_READY)
    {
      notConnected = false;
    } else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }

  Serial.println("GSM initialized");
}

void loop()
{

  Serial.print("Enter a mobile number: ");
  char remoteNum[20];  // telephone number to send sms
  readSerial(remoteNum);
  Serial.println(remoteNum);

  // sms text
  Serial.print("Now, enter SMS content: ");
  char txtMsg[200];
  readSerial(txtMsg);
  Serial.println("SENDING");
  Serial.println();
  Serial.println("Message:");
  Serial.println(txtMsg);

  // send the message
  sms.beginSMS(remoteNum);
  sms.print(txtMsg);
  sms.endSMS();
  Serial.println("\nCOMPLETE!\n");
}

/*
  Read input serial
 */
int readSerial(char result[])
{
  int i = 0;
  while (1)
  {
    while (Serial.available() > 0)
    {
      char inChar = Serial.read();
      if (inChar == '\n')
      {
        result = '\0';
        Serial.flush();
        return 0;
      }
      if (inChar != '\r')
      {
        result = inChar;
        i++;
      }
    }
  }
}




je n'ai fait que indenter mais je ne trouve pas la source du problème.

Mercie de m'aider SVP
Title: Plusieurs bouton poussoirs
Post by: clemboss on May 04, 2019, 04:43 pm
Bonjour, je vous présente rapidement mon projet avant mes questions :
J'ai pour but de placer un bouton sur chacune des 85 touches de mon piano acoustique pour envoyer des informations midi correspondant à chaque touches vers mon ordinateur en USB, ou bien si c'est possible directement en MIDI avec un shield adapté (il me semble que ça existe).
J'aimerais savoir si il est possible de combiner plusieurs boutons sur 1 pin d'un arduino (il me semble qu'il faut utiliser le Leonardo pour avoir une communication avec l'ordinateur en USB). Si c'est possible, peut-on utiliser les pins "Digital" (de 2 à 13) en plus des 5 pins "Analog" car 5 pins, ça me semble compliqué pour 85 touches...
Merci d'avance pour le temps que vous consacrerais pour m'aider.
Cordialement.
Title: projet Terminal STI2D
Post by: raph13 on May 05, 2019, 02:36 am
bonjour je suis en terminal STI2D en projet coef 12 pour le bac et je dois trouvé une solution pour mesurer le poids de médicaments et lancer un alerte si la quantitée de médicament est suppérieur a celle annoncer. J'ai deja trouvé tout les composant que je souhaite mais il me reste a faire le programme

j'ai donc trouvé un programme datant de 2012 sur le site arduino mais je rencontre des erreurs pouvez vous m'aider a les résoudre svp

lien du programme:    https://www.arduino.cc/en/Tutorial/GSMExamplesSendSMS



je aussi modifier le programme pour essayer de comblé les erreurs:

/*
 SMS sender

 This sketch, for the Arduino GSM shield,sends an SMS message
 you enter in the serial monitor. Connect your Arduino with the
 GSM shield and SIM card, open the serial monitor, and wait for
 the "READY" message to appear in the monitor. Next, type a
 message to send and press "return". Make sure the serial
 monitor is set to send a newline when you press return.

 Circuit:
 * GSM shield
 * SIM card that can send SMS

 created 25 Feb 2012
 by Tom Igoe

 This example is in the public domain.

 http://www.arduino.cc/en/Tutorial/GSMExamplesSendSMS

 */

// Include the GSM library
#include <GSM.h>

#define PINNUMBER ""

// initialize the library instance
GSM gsmAccess;
GSM_SMS sms;

void setup()
{
  // initialize serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial)
  {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  Serial.println("SMS Messages Sender");

  // connection state
  boolean notConnected = true;

  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  while (notConnected)
  {
    if (gsmAccess.begin(PINNUMBER) == GSM_READY)
    {
      notConnected = false;
    } else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }

  Serial.println("GSM initialized");
}

void loop()
{

  Serial.print("Enter a mobile number: ");
  char remoteNum[20];  // telephone number to send sms
  readSerial(remoteNum);
  Serial.println(remoteNum);

  // sms text
  Serial.print("Now, enter SMS content: ");
  char txtMsg[200];
  readSerial(txtMsg);
  Serial.println("SENDING");
  Serial.println();
  Serial.println("Message:");
  Serial.println(txtMsg);

  // send the message
  sms.beginSMS(remoteNum);
  sms.print(txtMsg);
  sms.endSMS();
  Serial.println("\nCOMPLETE!\n");
}

/*
  Read input serial
 */
int readSerial(char result[])
{
  int i = 0;
  while (1)
  {
    while (Serial.available() > 0)
    {
      char inChar = Serial.read();
      if (inChar == '\n')
      {
        result = '\0';
        Serial.flush();
        return 0;
      }
      if (inChar != '\r')
      {
        result = inChar;
        i++;
      }
    }
  }
}


merci de bien vouloir m'aider a corrigé les erreurs de ce programme.
Title: Re: projet Terminal STI2D
Post by: raph13 on May 05, 2019, 02:45 am
si vous avez mal comprit quelques chose n'hésitez pas à me le dire
Title: Re: projet Terminal STI2D
Post by: J-M-L on May 05, 2019, 07:57 am
On a bien compris que vous n'avez pas pris le temps de lire  comment utiliser le forum

(les posts épinglés en haut du forum comme « Bien éditer son post pour les nuls (http://forum.arduino.cc/index.php?topic=394754.0) » , « Faire un Nouveau Sujet ou le corriger avec les Balises... (http://forum.arduino.cc/index.php?topic=315372.0) » et « Règles du forum francophone (http://forum.arduino.cc/index.php?topic=546956.0) »),

==> faites un post « propre » , vite... the clock is ticking
Title: Connexion de résistances avec SensorShield
Post by: Steclow2 on May 05, 2019, 01:28 pm
Bonjour,

Je suis débutant en Arduino et pour un projet, j'ai besoin d'utiliser des servomoteurs. J'ai donc utilisé l'extension SensorShield afin de pouvoir les connecter à la carte (UNO).

 Cependant il faut que j'utilise également des photorésistances mais je n'ai aucune idée de comment je pourrais les connecter avec ma SensorShield, puisque les résistances seront sur une breadboard, et je ne sais pas comment connecter les 2, ni même si ça se fait.

Si quelqu'un pourrait m'éclaircir  :D
Title: Re: asservir un moteur pas a pas en position programmable avec un Arduino
Post by: faux_jetons on May 05, 2019, 03:45 pm
salut
le diviseur circulaire ou universel est placer est fixer sur le plans de travail de la machine outils
qui est la table de la fraiseuse
le diviseur a comme fonction de diviser avec des disques perforer  360° avec un nombre définis
l usinage ce fait avec le déplacement de trois axes
un pour la hauteur l axe Z
un autres axes pour le réglage a la demande x  qui est le déplacement de la table devant ou derrières
un autres axes pour l usinage  y  droite ou gauche
le  rotary encodeur incrémental   est a fixer sur l axe x ou y suivant la méthode de l usinage

j ai le montage qui fonctionne avec les branchement suivant
byte rowPINS[ROWS] = {11,10,9,8};
byte colPINS[COLS] = {7,6,5,4};

LiquidCrystal_I2C lcd(0x27,20,4)

const int stp = 12;                         //connect pin 12 to step
const int dir = 13;                         // connect pin 13 to dir

speed = analogRead(A0); pour controler la vitesse du moteur pas a pas

A1;  axes X joystick  A2; axes y joystick 2; Définition bouton centrale

le branchement de l encodeur que j ai fait   ( outA A3,  outB A4,  outZ A5 )

a plus
Title: Re: Connexion de résistances avec SensorShield
Post by: jfs on May 05, 2019, 07:46 pm
Un projet scolaire seulement en anglais ??

I'm actually in my second year of engineering
Tic tac tic tac.....
Title: Besoin d'un petit coup de main...
Post by: elbico on May 06, 2019, 12:11 am
Allo, premièrement, j'ignore si j'ai utilisé la bonne manière de poster ma demande (est-ce au bon endroit?)
Voici la problématique: j'essaie d'inclure un son à une programmation à partir d'un DFPLAYER Mini à chaque fois qu'un bouton est pressé (3 boutons correspondant à 3 sons différents). J'aimerais avoir un "cue" sur la manière la plus efficace et fiable d'arriver à mes fins.


Title: Re: Besoin d'un petit coup de main...
Post by: bricofoy on May 06, 2019, 09:34 am
https://forum.arduino.cc/index.php?topic=546956.0 (https://forum.arduino.cc/index.php?topic=546956.0)
Title: message + GPS
Post by: marmeus on May 06, 2019, 11:53 am
bonjour je suis en terminal STI2D option SIN  , nous avons un projet de bac  qui consiste a envoyer un message avec des coordonnées recuperer par un GPS lorsque le fauteil roulant  est trop incliner ( pour signaler un chute)  , les codes marchent bien séparément mais fusionner cela ne marche pas.
nous voulons donc les fusionner.
 
nous utilisons :  - un "SIM 900" pour les sms
                        - un "GY-NE06MV2" comme GPS
   

merci de votre aide , bonne journee

code GPS :

#include <TinyGPS++.h>
#include <SoftwareSerial.h>

static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;  // definie les baud a 9600

// introduit tiny GPS ++
TinyGPSPlus gps;

// connection au peripherique GPS
SoftwareSerial ss(RXPin, TXPin);

void setup()
{
     Serial.begin(9600);
     ss.begin(GPSBaud);
}

void loop()
{
     // des que la sequence d'avant est correctement etablie une phrase s'affiche
     while (ss.available() > 0)
       if (gps.encode(ss.read()))
         displayInfo();

     if (millis() > 5000 && gps.charsProcessed() < 10)
     {
       Serial.println(F("GPS non detecter , verfier le cablage ")); // si le GPS n'est pas detecter ecrit "virifier le cablage"
       while(true);
     }
}

void displayInfo() //ouvre le display pour ecrire les information ci dessous
{
     Serial.print(F("Location: ")); // ecrit " localitation"
     if (gps.location.isValid())
     {
       Serial.print(gps.location.lat(), 6); // ecrit la latitude
       Serial.print(F(","));
       Serial.print(gps.location.lng(), 6); // ecrit la longitude
     }
     else
     {
       Serial.print(F("INVALIDE")); // si cela ne marche pas ecrit "invalide"
     }
     Serial.println(); //ecrit le tous en boucle
}






code inclinometre + GPS :


#include <Wire.h>      // Permet de communiquer avec les périphériques I2C (pour l'écran LCD)
#include <ADXL335.h>   // Inclut la bibliothèque de l'accéléromètre
#include <rgb_lcd.h>   // Inclut la bibliothèque de l'écran LCD
#include <SoftwareSerial.h>

rgb_lcd lcd;
SoftwareSerial SIM900(7, 8); // Configure software serial port

// Définit la luminosité de la couleur rouge, verte et bleue
const int colorR = 255;   
const int colorG = 255;
const int colorB = 255;

// définit x, y et z sur les entrées analogique 2, 1 et 0
const int xPin = 2;   
const int yPin = 1;
const int zPin = 0;

// Valeur minimale et maximale de l'accéléromètre immobile
int minVal = 265;     
int maxVal = 402;     

// Pour lire x, y et z jusqu'à 4 nombres après la virgule
double x;             
double y;             
double z;             

// Valeur minimale et maximale de X et Y pour détecter la chute
int maxX = 50;         
int maxY = 50;
int minX = -50;
int minY = -50;

int variable = 0;      // Variable pour sms

void setup()
{
  SIM900.begin(19200);                    // Arduino communicates with SIM900 GSM shield at a baud rate of 19200, make sure that corresponds to the baud rate of your module
  delay(20000);                           // Give time to your GSM shield log on to network
  sendSMS();                              // Send the SMS
  Serial.begin(9600);                     // Nombre de symboles transmissit par seconde
  lcd.begin(16, 2);                       // Nombre de lignes et de colonnes sur l'écran LCD
  lcd.setRGB(colorR, colorG, colorB);     // Applique les luminosités définit précedemment
}

void sendSMS()
{
  SIM900.print("AT+CMGF=1\r"); // AT command to set SIM900 to SMS mode
  delay(100);
  SIM900.println("AT + CMGS = \"0659166691\"");
  delay(100);
  SIM900.println("message via arduino");
  delay(100);
  SIM900.println((char)26); // End AT command with a ^Z, ASCII code 26
  delay(100);
  SIM900.println();
  delay(5000); // Give module time to send SMS
}

void loop()
{
  // Lit les valeurs analogiques de l'accéléromètre
  int xRead = analogRead(xPin);
  int yRead = analogRead(yPin);
  int zRead = analogRead(zPin);

  // Convertit les valeurs lues en degrés de -90 à 90 (pour atan2)
  int xAng = map(xRead, minVal, maxVal, -90, 90);
  int yAng = map(yRead, minVal, maxVal, -90, 90);
  int zAng = map(zRead, minVal, maxVal, -90, 90);


  // Calcule les 360 ​​degrés avec atan2 (-yAng, -zAng), atan2 renvoie la valeur de -π à π (radians), ensuite on convertit les radians en degrés
  x = RAD_TO_DEG * (atan2(-yAng, -zAng) + PI);
  y = RAD_TO_DEG * (atan2(-xAng, -zAng) + PI);

  // Calibrage suivant les valeurs de l'accéléromètre à plat
  x = x - 185;
  y = y - 184;

  // Pour éviter les erreurs suite au calibrage
  if (x < -180)
  {
    x = x + 360;
  }
  if (y < -180)
  {
    y = y + 360;
  }

  // Affichage des valeurs de x et y pour vérifier si l'accéléromètre fonctionne
  lcd.setCursor(0,0);
  lcd.print("x: ");
  lcd.print(x);
  lcd.setCursor(0,1);
  lcd.print("y: ");
  lcd.print(y);

  delay(100); // Pour ralentir l'affichage (plus facile à lire)

  if (((y < minY) || (y > maxY)) || ((x < minX) || (x > maxX)))   // Conditions pour que la led s'allume
  {
    variable = variable + 1;
    if (variable == 1)
    {
      sendSMS();
    }
  }
  else
  {
    variable = 0;
  }
}







Title: Re: message + GPS
Post by: dbrion06 on May 06, 2019, 12:06 pm
Bonjour,
je crois savoir que le modérateur est impitoyable avec les codes non cernés par les balises (et que certaines séquences de code donnent des trucs bizarres, qu'on appelle smiley en franglais).
Vois relirez avec profit les 10 premières lignes de https://forum.arduino.cc/index.php?topic=394754.0 (https://forum.arduino.cc/index.php?topic=394754.0).

PS (Post Scriptum; sans contre façon) : la cruauté des moderateurs peut être accrue si les posts sont liés à un examen.
Title: Inclure des sons via DFPlayer mini dans une programmation
Post by: elbico on May 06, 2019, 02:30 pm
Allo,
Voici la problématique: j'essaie d'inclure un son à une programmation de séquence de puzzle electronique à partir d'un DFPLAYER Mini de sorte qu'à chaque fois qu'un bouton est pressé (3 boutons correspondant à 3 sons différents) un bruit retentit. J'aimerais avoir un "cue" sur la manière la plus efficace et fiable d'arriver à mes fins.

Title: RTC sur ruche connectée
Post by: victor0701 on May 06, 2019, 02:34 pm
bonjours a tous,
j'aimerais utiliser un RCT pour pourvoir mesurer la masse et la température d'une ruche connecter.
j'utilise une carte arduino MKR FOX 1200.
j'aimais le relier a sigfox. J'ai trouver se programme mais impossible de le relier a sigfox ...





#include <RTCZero.h>

/ * Créer un objet rtc * /
RTCZero rtc ;

/ * Modifiez ces valeurs pour définir l'heure initiale actuelle * /
const byte seconds = 0 ; octet
constantminutes = 0 ; heures d' octet
const = 16 ; / * Modifiez ces valeurs pour définir la date initiale actuelle * / const byte day = 15 ; const octet mois = 6 ; const octet année = 15 ; void setup ( ) { Série . commencer ( 9600 ) ;   rtc. commencer ( ) ; // initialise le RTC // règle l'heure








 



 
  rtc. setHours ( hours ) ;
  rtc. setMinutes ( minutes ) ;
  rtc. setSeconds ( secondes ) ;

  // Définit la date
  rtc. setDay ( jour ) ;
  rtc. setMonth ( mois ) ;
  rtc. setYear ( année ) ;

  // vous pouvez aussi utiliser
  //rtc.setTime(heures, minutes, secondes);
  //rtc.setDate(day, month, year);
}

void loop ( )
{
  // Imprimer la date ...
  print2digits ( rtc. GetDay ( ) ) ;
  Série . print ( "/" ) ;
  print2digits ( rtc. getMonth ( ) ) ;
  Série . print ( "/" ) ;
  print2digits ( rtc. getYear ( ) ) ;
  Série . print ( "" ) ;

  // ... et l'heure
  print2digits ( rtc.getHours ( ) ) ;
  Série . print ( ":" ) ;
  print2digits ( rtc. getMinutes ( ) ) ;
  Série . print ( ":" ) ;
  print2digits ( rtc. getSeconds ( ) ) ;

  Série . println ( ) ;

  délai ( 1000 ) ;
}



void print2digits ( int number) {
  if ( number < 10 ) {
    Série . print ( "0" ) ; // affiche un 0 avant si le nombre est inférieur à 10
  }
  Série . imprimer ( nombre ) ;
}





Merci d'avance !
Title: Re: RTC sur ruche connectée
Post by: 68tjs on May 06, 2019, 05:42 pm
Code obligatoirement entre balises ---> https://forum.arduino.cc/index.php?topic=315372.0 (https://forum.arduino.cc/index.php?topic=315372.0)


(https://www.cjoint.com/15mi/EEslHM4mBJP_balcod2.jpg)

Conseil : faire vite pour modifier le message pour obtenir des réponses et ne pas retrouver son message dans le Bar-> Bak-ka-poux-belle
Title: ARDUINO KEYPAD AIDE SVP
Post by: SAC2COURSES on May 06, 2019, 06:17 pm
Bonjour ,
j'ai un projet pour passer mon BAC et je suis un peu en retard , c'est un parking connecté, je vous explique.

J'ai un clavier 12 touche et l'utilisateur doit pouvoir programmé le nombre de place de parking et l'heure

donc je voudrais que quand on appui '#'  dire qu'il veut modifier le nombre de place disponible , -> ensuite on entre 123 puis on valide le nombre de places avec '#'.
pareil pour l'heure et la date ,on appui sur '*' entre jour puis mois puis année/heure/minutes/secondes et puis de nouveau '*'

pour l'instant si je lance mon programme et que je fait '123' sur le clavier et '#' il m'affiche bien 123 mais je n'ai pas réussi a faire comme je voulait faire , et vu que il a d'autre variable a enregistré je suis obligé de faire sa. Help svp  :smiley-cry:

Code: [Select]
#include <Keypad.h>
char Clavier[5];
int compteur = 0;
int valeur;
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};

byte rowPins[ROWS] = {7, 5, 3, 2};
byte colPins[COLS] = {4, 9, 8};

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
 
  Serial.begin(9600);
  Serial.println("OK");
}
 
void loop(){

  char key = keypad.getKey();
   
  if (key =='#')
     if (key != NO_KEY)   
    {
     
        Clavier[compteur++]= key;
        Clavier[compteur]= '\0';   
     
            if (key == '#')
                {
                     valeur= atoi(Clavier); 
                     Serial.println(valeur);
                     compteur = 0;
                }
     
     }

}
     
Title: Re: ARDUINO KEYPAD AIDE SVP
Post by: lesept on May 06, 2019, 06:56 pm
Tu mets le contenu de ta loop dans une fonction qui prend en paramètre d'entrée le caractère spécial # ou * et renvoie en sortie la valeur numérique entrée au clavier. Et dans la loop tu écris ce qui doit être fait pour entrer les différentes valeurs, en appelant ta fonction avec le bon argument.

Est-ce clair ?
Title: Re: ARDUINO KEYPAD AIDE SVP
Post by: SAC2COURSES on May 06, 2019, 09:24 pm
Non j'ai pas vraiment saisie désolé c'est la première fois que je fait de l'arduino , si tu peu me faire un exemple ou mettre le code avec explication sa serait très gentil ou juste un petit exemple :) Il ne me manque plus que cette partie pour mon projet :/
Title: Re: Plusieurs bouton poussoirs
Post by: clemboss on May 07, 2019, 11:17 pm
UP!
Title: GSM Shiled
Post by: Valentin1207 on May 10, 2019, 10:59 am
Bonjours j'ai un projet de SIN a faire moi je doit m'occupé d'envoyer un message automatiquement quand l'utilisateur envoie UN #. Problème cela fonctionne quand cela veut.
J'utilise comme carte sim la poste. Tous les exemples du GSM fonctionne.
Le code:

#include <GSM.h>
#define PINNUMBER "0000"
#define NUMBER "0780540034"

GSM gsmAccess;
GSM_SMS sms;

char senderNumber[20];
void setup()
{
  Serial.begin(9600);
  while (!Serial) {
    ;
  }

  // connection state
  boolean notConnected = true;

// Start GSM connection
 while (notConnected)
{
   if (gsmAccess.begin(PINNUMBER) == GSM_READY)
   {
      notConnected = false;
   } else
   {
      Serial.println("Not connected");
      delay(1000);
   }
}
}

void loop() {

   char remoteNum[20]; 
  if (sms.available() > 0)
  {
    sms.remoteNumber(senderNumber, 20);
    if (sms.peek() == '#')
    {
      sms.beginSMS(NUMBER);
      sms.print("AZERTYU");
      Serial.print("AZERTYU");
      sms.endSMS();
      sms.flush();
    }
 

  }
 
  }
Title: Re: GSM Shiled
Post by: J-M-L on May 10, 2019, 12:28 pm
lisez comment utiliser le forum (les posts épinglés en haut du forum comme "Bien éditer son post pour les nuls (http://forum.arduino.cc/index.php?topic=394754.0)" , "Faire un Nouveau Sujet ou le corriger avec les Balises... (http://forum.arduino.cc/index.php?topic=315372.0)" et "Règles du forum francophone (http://forum.arduino.cc/index.php?topic=546956.0)"), et faites un post "propre"
Title: GSM Shiled
Post by: Valentin1207 on May 10, 2019, 12:44 pm
Bonjours je suis en classe T STI2D , j'ai un projet qui consiste a faire un compteur d'eau connecté, mon boulot et d'envoyer un message automatiquement quand l'utilisateurs aura envoyer #. Donc j'ai déja essayé tous les exemples du GSM cela fonctionne , mais mon code a moi de fonctionne pas.
Matériel: Ordi, Carte Arduino avec un GSM Sield M10 , Une carte SIM La Poste.
Merci de bien vouloir m'aider

Code: [Select]

#include <GSM.h>
#define PINNUMBER "0000"
#define NUMBER "0780540034"

GSM gsmAccess;
GSM_SMS sms;

char senderNumber[20];
void setup()
{
  Serial.begin(9600);
  while (!Serial) {
    ;
  }

  // connection state
  boolean notConnected = true;

// Start GSM connection
 while (notConnected)
{
   if (gsmAccess.begin(PINNUMBER) == GSM_READY)
   {
      notConnected = false;
   } else
   {
      Serial.println("Not connected");
      delay(1000);
   }
}
}

void loop() {

   char remoteNum[20]; 
  if (sms.available() > 0)
  {
    sms.remoteNumber(senderNumber, 20);
    if (sms.peek() == '#')
    {
      sms.beginSMS(NUMBER);
      sms.print("AZERTYU");
      Serial.print("AZERTYU");
      sms.endSMS();
      sms.flush();
    }
 

  }
 
  }
Title: Re: GSM Shiled
Post by: al1fch on May 10, 2019, 12:54 pm
"faire UN message propre" veut dire "Corriger celui qui ne l'est pas" mais pas en faire un second !

Les messages multiples pas autorisés

Merci de ne pas  en faire un troisième pour remplacer le "Shiled' du titre pas 'Shield' !!!
Title: sending data to database MySQL with arduino and ethernet shield
Post by: nachwa on May 13, 2019, 12:08 am
bonjour à tous,
Comme indiqué dans le titre, j'ai un probleme avec l'arduino. Pour info, je l'utilise dans le cadre d'un projet scolaire (controler un transformateur leur temperature courant tension et puissance), et je suis débutant dans la programmation.

Voici le code :

#include <SPI.h>
#include <Ethernet.h>

#include "lm35.h"
#define LM35PIN 0
#define LM35
#define LM35TYPE  lm35

#include "ACS712.h"
#define acsPIN 1
#define ACS712

#include "ZMPT101B.h"
#define zmpt101bPIN 2
#define ZMPT101B

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192 , 168 , 1 , 101 }; //Enter the IP of ethernet shield
byte serv[] = { 192 , 168 , 1 , 100 } ; //Enter the IPv4 address
EthernetClient cliente;
float temp;
int tempPIN= 0;

float courant;
int courantPIN=1;

float tension;
int tensionPIN=2;
double sensorValue=0;
double sensorValue1=0;
int crosscount=0;
int climbhill=0;
double VmaxD=0;
double VeffD;
double Veff;

#define pin_courant A1
#define pin_tension A2



void setup() {
Serial.begin(9600); //setting the baud rate at 9600
Ethernet.begin(mac, ip);

}
void loop () {
  String data ;
  temp=analogRead(tempPIN);
  temp= (5.0 * temp * 100.0)/1024.0;
 
  float average=0;
  for (int i=0; i < 1000; i++)
   ( courant = average + (.044*analogRead(A1) -3.78)/1000);

   sensorValue1=sensorValue;
delay(100);
sensorValue = analogRead(A0);
if (sensorValue>sensorValue1 && sensorValue>511){
  climbhill=1;
  VmaxD=sensorValue;
  }
if (sensorValue<sensorValue1 && climbhill==1)
 { climbhill=0;
  VmaxD=sensorValue1;
  VeffD=VmaxD/sqrt(2);
  Veff=(((VeffD-420.76)/-90.24)*-210.2)+210.2;
  Serial.println(Veff);
  VmaxD=0;}

 
 if (cliente.connect(serv,8080)) { //Connecting at the IP address and port we saved before
Serial.println("connected");

cliente.println(" POST /ethernet/data.php? "); //Connecting and Sending values to database
cliente.print("temperature=");
cliente.print(temp);
cliente.print("courant=");
cliente.print(courant);
cliente.print("tension=");
cliente.print(tension);
cliente.println( " HTTP/1.1 ");
cliente.println( " Host: 192 , 168 , 1 , 101 " );
cliente.println ();
cliente.println ();
//Printing the values on the serial monitor
Serial.print("Temperature=  ");
Serial.println(temp);
Serial.print("courant=   ");
Serial.println(courant);
Serial.print("Tension=   ");
Serial.println(tension);

cliente.stop(); //Closing the connection
}
else {
// if you didn't get a connection to the server:
Serial.println(" Connection failed");
}
delay(5000);
}
Title: Problème de servomoteurs dans la fonction "loop"
Post by: Rommm1 on May 15, 2019, 06:28 pm
Bonjour je m'adresse à vous aujourd'hui car je dois réaliser un projet dont le but est de pouvoir faire varier la hauteur de coupe d'une tondeuse(30 mm 50 mm 70 mm) a distance a partir d'un logiciel que j'ai déjà crée(sur App Inventor 2). J'ai besoin d'utiliser 4 servomoteurs (1 par roue).Deux d'entre eux on une rotation inverse. J'ai déjà réaliser mon programme mais je n'arrive pas a comprendre pourquoi il ne fonctionne pas car les servos font la rotation de la partie "setup" mais ne font rien lorsque sur internet je clique sur le bouton "30 mm","50 mm" ou "70mm" , si certains sont assez fort en arduino j'aimerai bien votre aide ^^
(J'utilise une carte méga ainsi qu'un shield ethernet V2)

Code :
  #include <SPI.h>
  #include <Ethernet2.h>
  #include <Servo.h>
  Servo ServoAVG;
  Servo ServoAVD;
  Servo ServoARG;
  Servo ServoARD;
  int pos = 0;     
  int posi = 0;
  byte mac[] = { 0x90, 0xA2, 0xDA, 0x10, 0xF6, 0x22 };
  byte ip[] = { (mon IP que je cache) };
  byte subnet[] = { 255, 255, 255, 0 };               
  EthernetServer server(80);                             
  String readString;





void setup() {
  Serial.begin(9600);
    ServoAVG.write(pos);
    ServoAVD.write(posi);
    ServoARG.write(posi);
    ServoARD.write(pos);
    ServoAVG.attach(5);
    ServoAVD.attach(9);
    ServoARG.attach(7);
    ServoARD.attach(6);
  Ethernet.begin(mac, ip, subnet);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
              }

void loop() {
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {   
      if (client.available()) {
        char c = client.read();
     
        if (readString.length() < 100) {
              readString += c;
       
         }
 
         if (c == '\n') {         
           Serial.println(readString);
             client.println("HTTP/1.1 200 OK");
             client.println("Content-Type: text/html");
             client.println();
             client.println("<HTML>");
             client.println("<HEAD>");
             client.println(" <meta name='apple-mobile-web-app-capable' content='yes' />");
             client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
             client.println("<link rel='stylesheet' type='text/css' href='https://randomnerdtutorials.com/ethernetcss.css' />");
             client.println("<TITLE>Hauteur de coupe de la tondeuse</TITLE>");
             client.println(" </HEAD>");
             client.println(" <BODY>");
             client.println(" <H1>TONDEUSE</H1>");
             client.println(" <hr />");
             client.println("<br />");
             client.println("<H2>Hauteurs:</H2>");
             client.println(" <br />");
             client.println(" <a href=\"/?button1on\"\">30mm</a>");
             client.println("<a href=\"/?button2on\"\">50mm</a>");
             client.println(" <a href=\"/?button3on\"\">70mm</a>");
             client.println(" <br />");
             client.println(" <br />");
             client.println(" <br />");
             client.println("</BODY>");
             client.println(" </HTML> ");   
           
     
           delay(1);
           
           client.stop();
           //POSITION 1 30mm
           if (readString.indexOf("?button1on") >0){
              ServoAVG.write(pos = 0);
              ServoAVD.write(posi = 180);
              ServoARG.write(posi = 180);
              ServoARD.write(pos = 0);
              delay(50);
               for(pos = 0; pos < 80; pos += 3) 
                {                               
                  ServoAVG.write(pos);   
                  ServoARD.write(pos);         
                 delay(50);
                }
               for(posi = 180; posi > 100; posi -= 3)
               {
                  ServoAVD.write(posi);
                  ServoARG.write(posi);
                 delay(50);
               }
           }
           //POSITION 2 50mm
           if (readString.indexOf("?button2on") >0){
              ServoAVG.write(pos = 0);
              ServoAVD.write(posi = 180);
              ServoARG.write(posi = 180);
              ServoARD.write(pos = 0);
              delay(50);
               for(pos = 0; pos < 45; pos += 3)
               
                {                                 
                  ServoAVG.write(pos);   
                  ServoARD.write(pos);           
                 delay(50);
                }
              for(posi = 180; posi > 135; posi -=3)
              {
                 ServoAVD.write(posi);
                 ServoARG.write(posi);
                delay(50);
              }
              }
           }
           //POSITION 3 70mm
           if (readString.indexOf("?button3on") >0){
              ServoAVG.write(pos = 0);
              ServoAVD.write(posi = 180);
              ServoARG.write(posi = 180);
              ServoARD.write(pos = 0);
              delay(50);
                for(pos = 0; pos < 10; pos += 3)
                {                               
                  ServoAVG.write(pos);     
                  ServoARD.write(pos); 
                 delay(50);                     
                }
               for(posi = 180; posi >170; posi -=3)
               {
                ServoAVG.write(posi);
                ServoARG.write(posi);
               delay(50); 
               }
           }
         
       
            readString=""; 
           
         }
       }
    }
}
Title: détecteur seuil distance
Post by: blodewedd on May 20, 2019, 02:41 pm
Bonjour

je souhaite détecter un seuil (une distance) à l'aide d'un capteur ToF (time of flight ou temps de vol).
pour l'instant je veux juste allumer une led si je dépasse le seuil.

je mets plus bas le code utilisé.
(je suis partie de l'exemple fourni par la librairie)

la partie affichage de la distance fonctionne mais je n'arrive pas à commander la led.
pouvez-vous m'aider ?
Merci
 

#include "Adafruit_VL53L0X.h"
#include <SoftwareSerial.h>
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
unsigned int mesure;
int Pin = 2;
//int analogPin = A4;
int val = 0;
#define seuil 200

void setup() {
  Serial.begin(115200);

  // wait until serial port opens for native USB devices
  while (! Serial) {
    delay(1);
  }
 
  Serial.println("Adafruit VL53L0X test");
  if (!lox.begin()) {
    Serial.println(F("Failed to boot VL53L0X"));
    while(1);
  }
  // power
  Serial.println(F("VL53L0X API Simple Ranging example\n\n"));

pinMode(Pin,OUTPUT);
digitalWrite(Pin, LOW);
}


void loop() {
  VL53L0X_RangingMeasurementData_t measure;
   
  Serial.print("Reading a measurement... ");
  lox.rangingTest(&measure, false); // pass in 'true' to get debug data printout!

  if (measure.RangeStatus != 4) {  // phase failures have incorrect data
    Serial.print("Distance (mm): "); Serial.println(measure.RangeMilliMeter);
  } else {
    Serial.println(" out of range ");
  }
  val=analogRead(A4);
  Serial.println(val);
if (val > seuil)
 {
  digitalWrite(Pin,HIGH);
 }   

  delay(100);
}




Title: Re: détecteur seuil distance
Post by: hbachetti on May 20, 2019, 02:55 pm
Encore ... encore ...
Même réponse qu'ici : https://forum.arduino.cc/index.php?topic=616881.0 (https://forum.arduino.cc/index.php?topic=616881.0)
Title: Re: détecteur seuil distance
Post by: al1fch on May 20, 2019, 08:56 pm
Quote
je suis partie de l'exemple......
Encore une  qui a 'tout faux' (où poster ? comment publier le code ?) et qui n'a pas eu l'idée de se renseigner sur le fonctionnement du forum avant de poster
Title: Re: Exemple de communication sans fil nRF24L01+
Post by: vincentD67 on May 24, 2019, 09:11 am
Bonjour,
je suis en train de réaliser une commande de moteur via une communication RF (2,4GHz) mais j'utilise ces modules: https://www.mikroe.com/nrf-t-click

D'un côté j'ai connecté ce shield (https://www.robotshop.com/en/joystick-shield-v24.html) à une arduino UNO qui sert de joystick. Sur cette même UNO je branche un des modules RF.

De l'autre côté j'ai une arduino MEGA-2560 qui est connecté au second module pour recevoir l'instruction du joystick.

Je me suis basé sur un mix de ces 2 codes là:
- partie RF = http://educ8s.tv/nrf24l01/
- partie Joystick = https://skyduino.wordpress.com/2012/03/27/arduino-utiliser-un-joystick-pour-controler-la-directionvitesse-dun-robot/

J'ai déjà testé la partie Joystick en sortant sur la liaison série ce que le programme sort en fonction de la position du joystick donc a priori pas d'erreur.

Mon problème c'est que la 2e carte ne reçoit a priori pas les bonnes infos... En suivant via le Moniteur Série ce qu'elle reçoit de la 1ere c'est pas du tout bon. Il reçoit des "nan" ou des "ovf" et des nombres qu'ils ne devraient pas.

Je voulais donc savoir s'il y avait de grosses erreurs dans mon code ou s'il faut rajouter certaines précisions pour la liaison RF...
Egalement il y a-t-il une distance minimum entre les 2 modules ?

Merci d'avance pour votre aide.
Title: RTC avec plusieur alarme réglable
Post by: Benoitwoodland on May 25, 2019, 06:30 pm
Bonjour,

J'aurai besoin d'aide pour crée un programmateur d'arrosage pour faire fonctionner 3 électrovannes controlés par des relais

j'ai réeussi a faire quelque chose que je règle dans le code directement avant de compilé, mais je cale pour la posibilité de réglage avec plusieurs bouton avec petit écran LCD.

voici mon code sans possibilité de réglage manuel   :smiley-confuse:

merci d'avance.

#include <Wire.h>
#include "RTClib.h"



RTC_DS3231 rtc;

int relais = 2; //definition du pin N°7 comme connection avec mon relais
int relais1 = 3;
int relais2 = 4;
int relais3 = 5;
int pressurecontrol = A0;



void setup () {
 
  Wire.begin(); //Démarrage de la librairie wire.h
  rtc.begin(); //Démarrage de la librairie RTClib.h
  pinMode(relais, OUTPUT); //definis relais comme sortie
  pinMode(relais1, OUTPUT);
  pinMode(relais2, OUTPUT);
  pinMode(relais3, OUTPUT);
  pinMode(pressurecontrol, INPUT);
 
  digitalWrite(relais, LOW);
  digitalWrite(relais1, LOW);
  digitalWrite(relais2, LOW);
  digitalWrite(relais3, LOW);

   if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC lost power, lets set the time!");
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    rtc.adjust(DateTime(2019, 4, 13, 17, 24, 0));
  }
} /*//Si RTC ne fonctionne pas
  if (! rtc.begin()) {
    Serial.println("RTC ne fonctionne pas !");

    //Met à l'heure à date à laquelle le sketch est compilé
    //rtc.adjust(DateTime(__DATE__, __TIME__));
  }
}*/

void loop() {
     
  //Heure actuel
  DateTime now = rtc.now();

  //la pompe se déclenchera tout les jours à 19h30
  if (now.dayOfTheWeek() == 1, 3, 5, 7 && now.hour() == 20 && now.minute() == 0)
   {
    //Day of week : 1 pour lundi, 2 pour mardi, ...
        digitalWrite(relais1, HIGH);
        delay(900000); // 15 minutes
    //
  }
  if  (now.dayOfTheWeek() == 1, 3, 5, 7 && now.hour() == 20 && now.minute() == 30)
   {
    //Day of week : 1 pour lundi, 2 pour mardi, ...
    digitalWrite(relais2, HIGH);
    delay(900000); // 15 minutes
    //
  }
  if  (now.dayOfTheWeek() == 1,  3, 5, 7 && now.hour() == 21 && now.minute() == 0)
   {
    //Day of week : 1 pour lundi, 2 pour mardi, ...
    digitalWrite(relais3, HIGH);
    delay(900000); // 15 minutes
    //
  }
 
  else {
   
    digitalWrite(relais1, LOW);
    digitalWrite(relais2, LOW);
    digitalWrite(relais3, LOW);

  }

  delay(1000);
}
Title: probleme de puissance des moteurs de mon robot
Post by: pedro_eld on May 27, 2019, 11:40 pm
bonjour

je boss sur un mini robot arduino mais voila mais il se fait que quand je ne donne pas la valeur de 255 aux pins EN du moteurs, la roue gauche ne tourne. et quand le pdonne la valeur 255, les roues tournent trop vite. j'aimerai pouvoir réguler la puissance des moteurs. j'utilse une carte Arduino UNO et un shield BB-L298 pour la gestion des moteurs


PS le code que j'utilse

#include <Servo.h>


/*DECLARATIONS EN LIEN AVEC LE MOTEUR*/
const int DOUT_MOTEUR_GAUCHE_EN  = 6;
const int moteurGaucheA = 5;
const int moteurGaucheR = 7;
const int DOUT_MOTEUR_DROIT_EN   = 9;
const int moteurDroitA = 8;
const int moteurDroitR = 10;
//DECLARATION EN LIEN AVEC LE CAPTEUR DISTANCE ET LE SERVOMOTEUR*/
const byte TRIGGER = 4; // broche TRIGGER
const byte ECHO = 2; // broche ECHO
//const unsigned long MEASURE_TIMEOUT = 25000UL;
//const float SOUND_SPEED = 340.0 / 1000;



float intervalle;
int distanceAvant;
float distanceDroite;
float distanceGauche;
const int delay_time = 250;

Servo myservo;


//DECLARATION VARIABLE DHT

void setup() {
 // put your setup code here, to run once:

 // initialisation de la communication série:
 Serial.begin(115200);
 pinMode(moteurGaucheA, OUTPUT);
 pinMode(moteurGaucheR, OUTPUT);
 pinMode(moteurDroitA, OUTPUT);
 pinMode(moteurDroitR, OUTPUT);
 digitalWrite(moteurGaucheA, LOW);
 digitalWrite(moteurGaucheR, LOW);
 digitalWrite(moteurDroitA, LOW);
 digitalWrite(moteurDroitR, LOW);
 // inialisation du capteur de distance et du servomoteur

 pinMode(TRIGGER, OUTPUT);
 //digitalWrite(TRIGGER, LOW);
 pinMode(ECHO, INPUT);
 myservo.attach(3);
 myservo.write(30);
 
  pinMode(DOUT_MOTEUR_GAUCHE_EN, OUTPUT);
 pinMode(DOUT_MOTEUR_DROIT_EN, OUTPUT);
}




//FONCTION MOTEURS
void avancer()
{
 analogWrite(DOUT_MOTEUR_GAUCHE_EN, 255); // les deux moteurs tournent à la même vitesse//
   analogWrite(DOUT_MOTEUR_DROIT_EN, 255);
   digitalWrite(moteurGaucheA, HIGH);
 digitalWrite(moteurGaucheR, LOW);


 digitalWrite(moteurDroitA, HIGH);
 digitalWrite(moteurDroitR, LOW);

}

void reculer()
{
 analogWrite(DOUT_MOTEUR_GAUCHE_EN , 255); // les deux moteurs tourne dans le sens opposé à celui qu'ils avait dans la commande pour avancer en ligne droite//
 analogWrite(DOUT_MOTEUR_DROIT_EN, 255);
 digitalWrite(moteurGaucheA, LOW);
 digitalWrite(moteurGaucheR, HIGH);
 
  //
 
 digitalWrite(moteurDroitA, LOW);
 digitalWrite(moteurDroitR, HIGH);
}
void arreter()
{
 analogWrite(DOUT_MOTEUR_GAUCHE_EN , 0); // les deux moteurs s'arrêtent //


 analogWrite(DOUT_MOTEUR_DROIT_EN, 0);
 digitalWrite(moteurGaucheA, LOW);
 digitalWrite(moteurGaucheR, LOW);
 
 digitalWrite(moteurDroitA, LOW);
 digitalWrite(moteurDroitR, LOW);
}
void pivoterGauche()
{
 analogWrite(DOUT_MOTEUR_GAUCHE_EN , 0); // le moteur gauche frenne en tournant dans le sens opposé à celui du moteur droit //
 digitalWrite(moteurGaucheA, LOW);
 digitalWrite(moteurGaucheR, HIGH);
 
 analogWrite(DOUT_MOTEUR_DROIT_EN, 255);
 
 digitalWrite(moteurDroitA, HIGH);
 digitalWrite(moteurDroitR, LOW);

 delay(250);
 
 analogWrite(DOUT_MOTEUR_GAUCHE_EN , 0); // les deux moteurs s'arrêtent //


 analogWrite(DOUT_MOTEUR_DROIT_EN, 0);
 digitalWrite(moteurGaucheA, LOW);
 digitalWrite(moteurGaucheR, LOW);
 
 digitalWrite(moteurDroitA, LOW);
 digitalWrite(moteurDroitR, LOW);
}
void pivoterDroite()
{
 analogWrite(DOUT_MOTEUR_GAUCHE_EN , 255); // le moteur gauche continue à tourner avec la même vitesse //
 digitalWrite(moteurGaucheA, HIGH);
 digitalWrite(moteurGaucheR, LOW);
 
 analogWrite(DOUT_MOTEUR_DROIT_EN, 0);
 
 digitalWrite(moteurDroitA, LOW);
 digitalWrite(moteurDroitR, HIGH);
 
 delay(250);

 analogWrite(DOUT_MOTEUR_GAUCHE_EN , 0); // les deux moteurs s'arrêtent //


 analogWrite(DOUT_MOTEUR_DROIT_EN, 0);
 digitalWrite(moteurGaucheA, LOW);
 digitalWrite(moteurGaucheR, LOW);
 
 digitalWrite(moteurDroitA, LOW);
 digitalWrite(moteurDroitR, LOW);
}

//FONCTIONs UTRASONs

void mesurerDistanceAvant()//controle direction droit du servocommande
{
 myservo.write(30);
 delay(delay_time);

 digitalWrite(TRIGGER, LOW);
 delayMicroseconds(10);
 digitalWrite(TRIGGER, HIGH);
 intervalle = pulseIn(ECHO, HIGH);

 /* 3 calcul la distance a partir du temps mesuré */

 distanceAvant = ((intervalle / 2) / 29.1);
 Serial.print(" Distance ");
 //distanceAvant = distance_mm / 10.0, 2;
 Serial.print(distanceAvant);
 //Serial.println("cm");


// delay(300);
}

void mesurerDistanceGauche()//controle direction droit du servocommande
{
 myservo.write(0);
 delay(delay_time);

 digitalWrite(TRIGGER, LOW);
 delayMicroseconds(10);
 digitalWrite(TRIGGER, HIGH);
 intervalle = pulseIn(ECHO, HIGH);

 /* 3 calcul la distance a partir du temps mesuré */

 distanceGauche = ((intervalle / 2) / 29.1);
 /*Serial.println("distance Gauche ");
 Serial.print(distanceGauche);
 Serial.print("cm de ");*/


 delay(300);
}

void mesurerDistanceDroite()//controle direction droit du servocommande
{
 myservo.write(60);
 delay(delay_time);

 digitalWrite(TRIGGER, LOW);
 delayMicroseconds(10);
 digitalWrite(TRIGGER, HIGH);
 intervalle = pulseIn(ECHO, HIGH);

 /* 3 calcul la distance a partir du temps mesuré */

 distanceDroite = ((intervalle / 2) / 29.1);
 /*Serial.println("distance Droite ");
 //distanceAvant = distance_mm / 10.0, 2;
 Serial.print(distanceAvant);
 Serial.print("cm de ");*/


 delay(300);
}
//FONCTION UTASONS

void modeUltrason()
{
 mesurerDistanceAvant();
 delay(delay_time);

 if (distanceAvant < 25) //Si la distance avant est de moins de 25cm
 {
   arreter();
   //"Obstacle à l'avant")
   
   delay(delay_time);
   mesurerDistanceGauche();
   delay(delay_time);
   mesurerDistanceDroite();
   delay(delay_time);
   //delay(delay_time);
   //reculer();
   //delay(delay_time);
   //pivoterGauche();
   //delay(delay_time);
   //avancer();
   if (distanceGauche < 15 && distanceDroite < 15) //Si la distance à gauche et la distance à droite sont de moins de 15cm
   {
     //Obstacles à gauche et à droite, reculer
     reculer();
     delay(500);
     pivoterGauche();
     delay(250);
   }
   else if (distanceGauche > distanceDroite) //Si la distance gauche est plus grande que la distance droite
   {
     //Obstacle à droite, tourner à gauche
     pivoterGauche();
     delay(250);
   }
   else if (distanceGauche <= distanceDroite) //Si la distance gauche est plus petite ou égale à la distance droite
   {
     //Obstacle à gauche, tourner à droite
     pivoterDroite();
     delay(250);
   }
 }

 else //Si la distance avant est de plus de 15cm
 {
  /* Serial.println("Aucun obstacle, continuer tout droit");
   Serial.println();*/
   
   avancer();
 }

}
void loop() {
 // put your main code here, to run repeatedly:
  modeUltrason();
}
Title: Re: probleme de puissance des moteurs de mon robot
Post by: J-M-L on May 27, 2019, 11:48 pm
lisez comment utiliser le forum (les posts épinglés en haut du forum comme « Bien éditer son post pour les nuls (http://forum.arduino.cc/index.php?topic=394754.0) » , « Faire un Nouveau Sujet ou le corriger avec les Balises... (http://forum.arduino.cc/index.php?topic=315372.0) » et « Règles du forum francophone (http://forum.arduino.cc/index.php?topic=546956.0) »), et faites un post « propre »
Title: Re: probleme de puissance des moteurs de mon robot
Post by: jfs on May 28, 2019, 09:04 am
ça aurait été mieux de rééditer le premier message plutôt que de refaire un autre sujet.....
Title: Aidez-moi pour mon projet, je panique
Post by: BANGDZN on May 30, 2019, 05:32 pm
Bonjour a tous, j'ai un petit soucis concernant mon programme pour mon projet de fin d'année pour le Bac, a vrai dire, l'épreuve est dans 5 jours, et c'est la panique !

Mon rôle est d'inverser le sens de rotation d'un moteur a courant continu tout en captant le courant traversant ce dernier : le problème est que je n'arrive pas a faire concorder ces deux fonctions et rien ne va... Ah oui, je ne connais vraiment pas grand chose d'arduino, si ce n'est les grandes lignes.

Votre aide me serait précieuse, je vous mets ci dessous mon programme :

( Programme qui sert a capter le courant, qui marche ^^)

------------------------

#include "Grove_I2C_Motor_Driver.h"

// default I2C address is 0x0f

#define I2C_ADDRESS 0x0f

#define CURRENT_SENSOR A0 // Analog input pin that sensor is attached to

 float amplitude_current;               //amplitude current

 float effective_value;       //effective current

void setup() {

  Serial.begin(9600);   

  Motor.begin(I2C_ADDRESS);

  pins_init();

}

void loop(){

  int sensor_max;

   sensor_max = getMaxValue();

   Serial.print("sensor_max = ");

   Serial.println(sensor_max);

   //the VCC on the Grove interface of the sensor is 5v

   amplitude_current=(float)(sensor_max-512)/1024*5/185*1000000;

   effective_value=amplitude_current/1.414;

   //minimum_current=1/1024*5/185*1000000/1.414=18.7(mA)

   //Only for sinusoidal alternating current

   Serial.println("L'amplitude du courant est (en mA)");

   Serial.println(amplitude_current,1);//Only one number after the decimal point

   Serial.println("La valeur effective du courant est (en mA)");

   Serial.println(effective_value,1);

}

void pins_init()

 {

   pinMode(CURRENT_SENSOR, INPUT);

 }

 /*Function: Sample for 1000ms and get the maximum value from the S pin*/

 int getMaxValue()

 {

   int sensorValue;             //value read from the sensor

   int sensorMax = 0;

   uint32_t start_time = millis();

   while((millis()-start_time) < 1000)//sample for 1000ms

   {

       sensorValue = analogRead(CURRENT_SENSOR);

       if (sensorValue > sensorMax)

       {

           /*record the maximum sensor value*/

           sensorMax = sensorValue;

       }

   }

   return sensorMax;

 ------------------------------------

( Programme qui sert a controller le moteur, qui marche aussi ^^)

#include "Grove_I2C_Motor_Driver.h"

// default I2C address is 0x0f

#define I2C_ADDRESS 0x0f

void setup() {

  Serial.begin(9600);

  Motor.begin(I2C_ADDRESS);

}

void loop() {

  Motor.speed(MOTOR1, 50);

  delay(2000);

  Motor.speed(MOTOR1, -100);

  delay(2000);

  Motor.stop(MOTOR1);

}

-----------------------------

Je ne sais pas si cela est tâche facile, mais dans tous les cas, je vous remercie du fond du coeur <3
Title: Conseils pour le montage electrique de branchements moteurs 12V-2A
Post by: pierrewallaert on Jun 03, 2019, 03:32 pm
Bonjour,
Dans le cadre d'un projet en école nous souhaitons faire tourner des moteurs de 12V-2A grâce à une Arduino MEGA. Pour l'instant, nous avons fait notre algo et notre projet avec des petits moteurs 5V controlés via un pont en H et une pile mais nous souhaitons passer à des moteurs plus puissants reliés au secteur pour l'alimentation. Est-ce que vous pourriez m'aider pour le circuit et les composants qui permettraient d'effectuer cela? Un grand merci

Pierre Wallaert
Title: Re: Conseils pour le montage electrique de branchements moteurs 12V-2A
Post by: Arzou on Jun 04, 2019, 11:55 pm
Bonsoir, tu es sur la mauvaise rubrique
Demande a Un administrateur de deplacer ton post. Et surtout lit les mode d'emplois du forum.

Sinon pour la commande moteur, pour - de 2A tu as ca tres bien et pas cher , c'est un double pont en h


https://s.click.aliexpress.com/e/cAxCitXa


Pour beaucoup plus tu as ca
https://s.click.aliexpress.com/e/10fne5a  simple pont en h de forte puissance

Pour l'alimentation tu peux utiliser une alim de box ou autre chose, a toi de voir.

Essaye dans la mesure du possible d'avoir une alimentation séparée pour l'arduino

L'important est que les masses soient reliés
Title: programmation 4 servomoteur et 8 boutons poussoirs
Post by: Philppe on Jun 15, 2019, 08:18 pm
bonjour,

je débute avec la programmation pour realiser un bras robotique avec carte uno
j'essaie de réaliser un programme qui comporte 4 servos ( servos récupérés sur des voiture Rc , les boutons poussoir ont étés récupérés ce sont des BP borne arcade joysticks.
j'ai chercher comme faire , j;ai commencer par 1 servo et 2 boutons poussoir ( Bp1 le servo va dans 1 sens et Bp2 dans l'autre sens ) cela fonctionne correctement.
j'ai essayer de de faire evoluer le programme  pour ajouter un servo et 2 boutons pousoir
mais ça fonctionne pas.
j'ai commis une erreur en programment, je ne sais pas trop comment ajouter les nouveaux servos et les nouveaux Bp.
2 Bp commande un servo
quelque peux m;expliquer ce que j'ai mal fais

Ps  je veux pas de programme tout prêt je veux juste comprendre comment faire

merci

P


Code: [Select]

// le code
void setup() {
}
#include <Servo.h>

int bp1 = 1;
int bp2 = 2;
int bp3 = 3;
int bp4 = 4;

int position = 0;

/* control servo */
Servo monServomoteur1;
Servo monServomoteur2;

void setup()
{
  // Bouton poussoir
  pinMode(bp1, INPUT_PULLUP);
  pinMode(bp2, INPUT_PULLUP);
  pinMode(bp3, INPUT_PULLUP);
  pinMode(bp4, INPUT_PULLUP);


  // Attache le servomoteur
  monServomoteur1.attach(9);
  monServomoteur1.write(0);
  monServomoteur2.attach(10);
  monServomoteur2.write(0);
  Serial.begin(9600);
}

void loop()
{
  // Récuperer valeur de bp
  int b1 = digitalRead(bp1);
  int b2 = digitalRead(bp2);
  int b3 = digitalRead(bp3);
  int b4 = digitalRead(bp4);

  // Si Appuie BP1
  if (b1 == LOW) {
    monServomoteur1.write(position);
    position = position + 1;
    if (position > 180) {
      position = 180;
    }
    delay(10);
  }

  // Si Appuie BP2
  if (b2 == LOW) {
    monServomoteur1.write(position);
    position = position - 1;
    if (position < 0) {
      position = 0;
    }
    delay(10);
  }

// Si Appuie BP3
  if (b3 == LOW) {
    monServomoteur2.write(position);
    position = position + 1;
    if (position > 180) {
      position = 180;
    }
    delay(10);
  }
  // Si Appuie BP4
  if (b4 == LOW) {
    monServomoteur2.write(position);
    position = position - 1;
    if (position < 0) {
      position = 0;
    }
    delay(10);
  }

  Serial.print("Position du servo : "); Serial.println(position);

}
Title: Re: programmation 4 servomoteur et 8 boutons poussoirs
Post by: Zlika on Jun 15, 2019, 08:35 pm
Bonsoir,

La première chose à faire est d'éditer votre premier post pour mettre votre code entre balise comme expliqué ici (https://forum.arduino.cc/index.php?topic=315372.0).

Ensuite, dans votre programme, vous n'utilisez qu'une seule variable 'position' pour contrôler 2 servos moteur.
Donc, logiquement, les boutons de commande agissent sur les deux servos moteur en même temps et ils auront aussi la même position.

Pour commander 2 servos moteurs indépendamment, il faut 2 variables.
De plus il est logique de modifier déjà la variable avant de l'appliquer au servo moteur, sinon on se retrouve avec un décalage avec la commande.
Title: Re: programmation 4 servomoteur et 8 boutons poussoirs
Post by: Philppe on Jun 15, 2019, 08:47 pm
merci pour la réponse je fais regarder cela et essayer de comprendre , si je n'y parviens pas je posterais un nouveau message 
Title: Re: programmation 4 servomoteur et 8 boutons poussoirs
Post by: Zlika on Jun 15, 2019, 08:53 pm
OK mais la modification du premier post est impérative sinon tout va partir à la poubelle.  :-X
Title: Re: programmation 4 servomoteur et 8 boutons poussoirs
Post by: Philppe on Jun 15, 2019, 10:53 pm
j'ai essayer de modifier mon code mais maintenant j'ai une erreur quand je teste le programme
error: 'position2' was not declared in this scope
comment je dois la declaree
pardon mais je debute alors j'ai mal fais quelque chose

merci
ph







Code: [Select]

#include <Servo.h>
// global variables
int bp1 = 1;
int bp2 = 2;
int bp3 = 3;
int bp4 = 4;


int initial_position1 = 0;
int initial_position2 = 0;

/* control servo */
Servo monServomoteur1;
Servo monServomoteur2;

void setup()
{
// Bouton poussoir
pinMode(bp1, INPUT_PULLUP);
pinMode(bp2, INPUT_PULLUP);
pinMode(bp3, INPUT_PULLUP);
pinMode(bp4, INPUT_PULLUP);


// Attache le servomoteur
monServomoteur1.attach(9);
monServomoteur1.write(0);
monServomoteur2.attach(10);
monServomoteur2.write(0);
monServomoteur1.write (initial_position1);
monServomoteur2.write (initial_position2);


Serial.begin(9600);
}

void loop()
{
// Récuperer valeur de bp
int b1 = digitalRead(bp1);
int b2 = digitalRead(bp2);
int b3 = digitalRead(bp3);
int b4 = digitalRead(bp4);

// Si Appuie BP1
if (b1 == LOW) {
  monServomoteur1.write(position1);
  position1 = position1 + 1;
  if (position1 > 180) {
    position1 = 180;
  }
  delay(10);
}

// Si Appuie BP2
if (b2 == LOW) {
  monServomoteur1.write(position1);
  position1 = position1 - 1;
  if (position1 < 0) {
    position1 = 0;
  }
  delay(10);
}

// Si Appuie BP3
if (b3 == LOW) {
  monServomoteur2.write(position2);
  position2 = position2 + 1;
  if (position2 > 180) {
    position2 = 180;
  }
  delay(10);
}
// Si Appuie BP4
if (b4 == LOW) {
  monServomoteur2.write(position2);
  position2 = position2 - 1;
  if (position2 < 0) {
    position2 = 0;
  }
  delay(10);
}

Serial.print("Position du servo1 : "); Serial.println(position1);
 Serial.print("Position du servo2 : "); Serial.println(position2);
}


void loop() {
}
Title: Re: programmation 4 servomoteur et 8 boutons poussoirs
Post by: lesept on Jun 16, 2019, 09:52 am
Ce code aussi doit être entre balises

Ajoute la déclaration de tes variables position avant le setup, comme tu le fais pour les positions initiales


Code: [Select]
int position1 = 0;
int position2 = 0;


Pour quatre servos, tu devrais envisager d'utiliser des joysticks plutôt que des boutons. On en trouve assez facilement pour pas cher chez Ali.

(https://images-na.ssl-images-amazon.com/images/I/7107LMToTLL._SY355_.jpg)
Title: Re: programmation 4 servomoteur et 8 boutons poussoirs
Post by: Philppe on Jun 16, 2019, 11:22 am
merci pour la réponse
concernant le bouton joysticks j'en aient mais je les trouvent un peux petit je voulais utiliser des bouton arcades
toute fois je fais faire le code pour les boutons joysticks

Ph
Title: Re: programmation 4 servomoteur et 8 boutons poussoirs
Post by: lesept on Jun 16, 2019, 11:25 am
Ok, modifie ton message #4 pour ajouter les balises autour du code, sinon ta discussion risque de finir à la poubelle avant que tu aies fini ton programme...
Title: Conseil sur kit arduino pour projet amateur (ouverture automatisé pour enclos)
Post by: Pi_xel on Jun 29, 2019, 08:18 pm
Salut,
J'aimerai monter une ouverture automatisé pour un enclos. Je chercherai à avoir des conseils à ce sujet.
Je m'explique :
Le but est que l'ouverture d'un enclos soit automatisé en fonction des horaires et/ou du couché du Soleil.
Pour cela, j'envisage d'utiliser une carte Arduino Uno avec un Shield Grove, un capteur de luminosité et un moteur.
Mon problème se situe au niveau de ce dernier. Je ne sais pas comment intégrer ce dernier au système. J'ai déjà des moteurs 9V chez moi mais je ne sais pas comment faire le lien entre ces derniers et ma carte.
Du coup, je me demande s'il n'est pas mieux d'en acheter un compatible. Mais dans ce cas, je ne sais pas comment le choisir. Il faut bien sûr qu'il soit capable de d'assurer un couple minimal afin d'entraîner l'ouverture de la trappe.
J'aimerai donc savoir ce que vous en pensez ^^
Au passage, si vous avez des préférences sur les sites/modes d'achat n'hésitez pas à les partager.

Ps : Je n'ai pour l'instant aucun équipement hormis les moteurs Si cela possible, je voudrai éviter tout achat inutile, donc difficile de tester tout ça.  :D

Le capteur de luminosité envisagé :
https://boutique.semageek.com/fr/1205-capteur-de-lumiere-grove-v12.html

La carte arduino envisagée :
https://www.gotronic.fr/art-carte-arduino-uno-12420.htm

Et le shield grove :
https://fr.rs-online.com/web/p/products/1743233/?grossPrice=Y
ou
https://www.gotronic.fr/art-module-grove-base-shield-103030000-19068.htm

Pour la programmation, une fois le tous compatible, je pense pouvoir me débrouiller
Title: Re: Conseil sur kit arduino pour projet amateur (ouverture automatisé pour enclos)
Post by: 68tjs on Jun 30, 2019, 10:22 am
Bonjour,
Tu as choisi le sous forum "Réalisations et Produits FINIS" qui est destiné à la présentation des réalisations qui FONCTIONNENT.

Je ne pense pas que tu n'entres pas encore dans cette catégorie.
Tu fais défiler l'écran et tu trouvera le forum général là où les questions se posent.

Utilise le lien "Report to Moderator" pour faire déplacer ce message, n'en créé pas un autre.

Tu n'obtiendra pas de réponse tant que le message ne sera pas déplacé.
Profites en pour lire les messages épinglés "Règles du forum rancophone" et "Faire un nouveau sujet"

A bientôt.
Title: Module GPS qui ne fonctionne pas
Post by: AdrienBodin on Jul 05, 2019, 06:51 pm
Bonjour à tous,
Dans le cadre d'une mission sur le Maroni en Guyane nous avons créé une sonde. Son but est essentiellement de mesurer le débit de l'eau sur une pirogue où l'on sera. On utilise pour cela débimètre et module GPS. Curieusement le module GPS ne se connecte pas
Voici le code

#include <OneWire.h> //Librairie du bus OneWire
#include <DallasTemperature.h> //Librairie du capteur DS18B20
#include <SPI.h>        //Librairie SD + radio : miso/mosi
#include <SD.h>         //Librairie SD
#include <SimpleDHT.h>  
#include <Wire.h>
#include <nRF24L01.h>   //Librairie radio
#include <RF24.h>       //Librairie radio
#include <TinyGPS++.h>


File monFichier;        //Fichier sd  

static const int RXPin = 31, TXPin = 33;
static const uint32_t GPSBaud = 4800;

/*Variables + pin Flow sensor*/
volatile int FlowPulse; //measuring the rising edges of the signal
int Pulse;
int CalcFlow;                        
int flowsensor_pin = 2;    //On utilise l'entree logique D2 pour detecter les fronts du capteur de débit
/*Variables + pin PHmeter*/
//int ph_pin = A0;           //On utilise A0 pour lire la tension Po du caapteur de PH

/*Variables + pin SD*/
int CS_pin = 4;
String EtatSD;

long last=0;               /* Variable pour memoriser le temps courant */
int milisegundos=3000;     /* On configure la lecture, l'enrigistrement et l'envoie toutes les secondes */

/*Module radio NRF24*/
RF24 radio(8, 9);          /* Le module radio utilise D8 pour le CE et D9 pour le CSN*/
const byte address[6] = "00001"; /* Addresse du module radio. Doit être identique sur l'emetteur et le récepteur */

OneWire oneWire(3);                   /*Le Bus One Wire est connecté sur la pin D3 de l'arduino*/
DallasTemperature sensors(&oneWire);  //Utilistion du bus Onewire pour les capteurs
DeviceAddress sensorDeviceAddress;    //Vérifie la compatibilité des capteurs avec la librairie
int brochesonde = 7;
SimpleDHT11 sonde;
   byte temperature = 0;
   byte humidity = 0;
   byte data[40] ={0};
   
// The TinyGPS++ object
TinyGPSPlus gps;

// The serial connection to the GPS device



void rpm()     //Cette fontion est appelée par l'interruption
{
 FlowPulse++;  //On compte les fronts montants
}
 void displayInfo()
{
 Serial.print(F("Location: "));
 if (gps.location.isValid())
 {
   Serial.print(gps.location.lat(), 6);
   Serial.print(F(","));
   Serial.print(gps.location.lng(), 6);
 }
 else
 {
   Serial.print(F("INVALID"));
 }

 Serial.print(F("  Date/Time: "));
 if (gps.date.isValid())
 {
   Serial.print(gps.date.month());
   Serial.print(F("/"));
   Serial.print(gps.date.day());
   Serial.print(F("/"));
   Serial.print(gps.date.year());
 }
 else
 {
   Serial.print(F("INVALID"));
 }

 Serial.print(F(" "));
 if (gps.time.isValid())
 {
   if (gps.time.hour() < 10) Serial.print(F("0"));
   Serial.print(gps.time.hour());
   Serial.print(F(":"));
   if (gps.time.minute() < 10) Serial.print(F("0"));
   Serial.print(gps.time.minute());
   Serial.print(F(":"));
   if (gps.time.second() < 10) Serial.print(F("0"));
   Serial.print(gps.time.second());
   Serial.print(F("."));
   if (gps.time.centisecond() < 10) Serial.print(F("0"));
   Serial.print(gps.time.centisecond());
 }
 else
 {
   Serial.print(F("INVALID"));
 }

 Serial.println();
}
void setup()
{
 Serial.begin(9600);
 Serial.begin(9600);
 radio.begin();
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MAX);
  radio.stopListening();

  /* Initialisation capteur temperature (one wire)*/
  sensors.begin();                                //Activation des capteurs
  sensors.getAddress(sensorDeviceAddress, 0);     //Demande l'adresse du capteur à l'index 0 du bus
  sensors.setResolution(sensorDeviceAddress, 12); //Résolutions possibles: 9,10,11,12
 
  /* Initialisation aquisition Flow sensor */
  pinMode(flowsensor_pin, INPUT);                         //initialise la pin digitale 2 en entree
  attachInterrupt(digitalPinToInterrupt(2), rpm, RISING); //et on y attache une interruption a chaque front montant du signal
 
  /* Initialisation de la carte SD */
  if (!SD.begin(4)){                                      //On teste la communication avec la carte(pin 4)
       Serial.println("Communication impossible avec la carte micro-sd");
       //return; //stoppe le programme
       EtatSD="SD_NoCom";
   }
   else{
        Serial.println("Communication ok !");
        Serial.println("Ouverture du fichier");
        if (!(monFichier = SD.open("DATA.txt",FILE_WRITE))){
           Serial.println("Erreur de fichier");
           //return; //stoppe le programme
           EtatSD="SD_ErrFile";
        }
        else {
           Serial.println("Fichier ouvert");
           monFichier = SD.open("DATA.txt",FILE_WRITE);
           monFichier.println("New record ...");
           monFichier.close();                           /* On referme le fichier */
           EtatSD="SD_Ok";
        }
   }
   last=millis();
}

void loop()
{

 char text[32] = "";
 String CalcStr;
 float Po;
 
 if((millis()-last) >= milisegundos){
   /*Code ici execute toute les secondes */

   /* Aquisition de la température */
   sensors.requestTemperatures();            //Demande la température aux capteurs
   Serial.print("La température est: ");
   Serial.print(sensors.getTempCByIndex(0)); //Récupération de la température en celsius du capteur n°0
   Serial.println(" °C");


   int err = SimpleDHTErrSuccess;
   if ((err = sonde.read(brochesonde, &temperature, &humidity, data))== SimpleDHTErrSuccess) {

     Serial.print ("temp :");
     Serial.print (temperature);
     Serial.print (", Humid :");
     Serial.println ((int)humidity);
 
    }
   
 if (Serial1.available() > 0){
   if (gps.encode(Serial1.read()))
     displayInfo();
 }
 if (millis() > 5000 && gps.charsProcessed() < 10)
 {
   Serial.println(F("No GPS detected: check wiring."));
   while(true);
 }

CalcFlow = (FlowPulse*0.29);            //(Pulse frequency x 60) / 7.5Q, = flow rate in L/hour ==> Ici juste nbr de tours (impulsions)
   Serial.print (CalcFlow, DEC);                 //Prints the number calculated above
   Serial.println (" mètres");                   //Prints "L/hour" and returns a  new line
   Pulse = FlowPulse;
   FlowPulse = 0;                                //Set NbTops to 0 ready for calculations ==> attention pour ne pas perdre un evenement/impulsion
                                                 //il faut faire une soustraction
   Serial.print(" Température de l'air : "); Serial.print((int)temperature); Serial.println(" *C, ");
   Serial.print(" Humidité de l'air : "); Serial.print((int)humidity); Serial.println(" %");
   /* Enregistrement dans la carde SD */
   Serial.println("SD Record");
   if (EtatSD=="SD_Ok") {
     monFichier = SD.open("DATA.txt",FILE_WRITE);  /* Overture du fichier */

     if (gps.date.isValid())
         {
         monFichier.print(gps.date.month());
         monFichier.print(F("/"));
         monFichier.print(gps.date.day());
         monFichier.print(F("/"));
         monFichier.print(gps.date.year());
         }
    else
         {
         monFichier.print(F("**/**/**"));
         }
     monFichier.print(";");
     monFichier.print(Pulse);
     monFichier.print(";");
     monFichier.print(CalcFlow);                   /* Ecriture du Flow */
     monFichier.print(";");
     monFichier.print(sensors.getTempCByIndex(0)); /* Ecriture de la température en celsius du capteur n°0*/
     monFichier.print(";");
     monFichier.print(humidity);                       /* Ecriture du Ph */  
     monFichier.print(";");
     monFichier.println(temperature);  
     monFichier.close();                           /* On referme le fichier */
   }    
//    Serial.println("SD Record END");
   last=millis();
//    Serial.println("SD Record END 2");
   /* Envoie des donnees par radio */
   /* Etat SD / Flow / Temp / PH */
   CalcStr = EtatSD+";"+String(CalcFlow)+";"+sensors.getTempCByIndex(0)+";"+humidity+";"+temperature;
   CalcStr.toCharArray(text, 32);                  /* Le module radio attend un tabeau de char */
   Serial.println (text);
   radio.write(&text, sizeof(text));               /* On envoie le buffer */
//    Serial.println ("END");
 }
}


Un code assez conséquent mais si quelqu'un pourrait nous aider assez vite ça serait super car nous partons demain ...  :smiley-sweat:
Je vous remercie par avance
Title: Re: Module GPS qui ne fonctionne pas
Post by: lesept on Jul 05, 2019, 07:25 pm
Il faudrait mettre ton code entre balises CODE pour en faciliter la lecture. Édite ton message pour faire ça.

As-tu testé les exemples simples de la bibliothèque TinyGPS++? S'ils fonctionnent, ça veut dire que ce n'est pas un problème de connexion ni du module lui même. Sinon vérifie...

Tu devrais partir d'un code simple autour du GPS et qui fonctionne, et ajouter un par un tes capteurs pour voir à partir de quel moment ça ne marche plus. De proche en proche, tu pourras ainsi isoler ce qui pose problème.
Title: Re: Module GPS qui ne fonctionne pas
Post by: savoriano on Jul 05, 2019, 08:38 pm
Je pense que le problème vient de la:
Code: [Select]
Serial.begin(9600);
 Serial.begin(9600);
 


T'as pas oublié un "1" ou autre? Ca dépend comme vous avez branché le GPS sur l'arduino

Code: [Select]
Serial.begin(9600);
 Serial1.begin(9600);
 


Title: Re: Module GPS qui ne fonctionne pas
Post by: lesept on Jul 06, 2019, 10:03 am
Comme dit savoriano, le GPS semble utiliser Serial1 qui n'est pas initialisé. J'ai relevé d'autres erreurs :
Title: Aidez nous pour notre projet svp
Post by: nico__ninit on Sep 19, 2019, 11:27 am
Bonjour,

Nous somme un groupe de terminal Sti2d et nous devons faire un projet pour notre bac en fin d'année. nous avons besoin d'une communication Bluetooth entre deux Arduino-uno mais les Arduino doivent alterner entre être esclave et maître... De plus un Arduino devra à la fois communiquer par Bluetooth à l'autre Arduino et un à téléphone portable. Est-ce que cela est possible ?? Si oui comment ?

Merci pour votre aide  ;)
Title: Re: Aidez nous pour notre projet svp
Post by: 68tjs on Sep 19, 2019, 01:18 pm
Bonjour,
C'est très bien de vous y prendre à l'avance mais soyez sûr d'une chose nous avons un profond respect pour les examens et nous ne ferons rien à votre place.

Une partie de votre note dépendra de votre capacité à faire des recherches, en conséquence vous n'obtiendrez de l'aide que sur le travail réellement réalisé.

Cherchez, documentez vous et si le besoin s'en fait sentir posez des questions précises.

Nota : faites un tour dans le sous forum Tuto et cours, utilisez le moteur de recherche de ce forum (la loupe en haut à droite). Les premières réponses seront en français.

Bon courage.


PS : Modifiez le titre du premier message : si vous aviez lu le message épinglé "Règle du forum francophone" vous auriez vu que les titres qui contiennent "A l'aide" ou "Help" finissent généralement à la poubelle.
La raison est que les titres sont utilisés par le moteur de recherche et que l'aide qui vous sera apportée devra pouvoir servir à d'autres.
Title: Re: Aidez nous pour notre projet svp
Post by: jfs on Sep 19, 2019, 09:50 pm
Tic tac tic tac  :smiley-mr-green:
Title: Re: Aidez nous pour notre projet svp
Post by: Artouste on Sep 19, 2019, 11:25 pm
Tic tac tic tac  :smiley-mr-green:
:smiley-mr-green:

Implacable démonstration de la rigueur du chronométrage suisse
Title: Re: Aidez nous pour notre projet svp
Post by: jfs on Sep 22, 2019, 08:00 am
Boom  :smiley-mr-green:
Title: Re: Bac-Ka-Poux-Bêle 2019
Post by: fdufnews on Sep 22, 2019, 09:11 am
Il semblerait que la pause estivale soit terminée..... :smiley-mr-green:
Title: communication entre deux hc 05
Post by: nico__ninit on Sep 26, 2019, 04:43 pm
Bonjour bonjour,
je vient vers vous car j'ai un problème, je doit effectuer une communication bluetooth entre deux Arduino uno avec des modules HC 05. Le problème est que je ne je n'arrive pas a appareillé mes deux modules ensembles. De plus ils doivent alterné entre maître et esclave.
J'arrive pour le moment a communiquer avec mon téléphone et les deux modules. mais il faudrait que mon téléphone communique avec un seul Arduino et ensuite ils-échange des information. Si vous avez des solution je suis preneur!!!!
Title: Re: communication entre deux hc 05
Post by: lesept on Sep 26, 2019, 05:19 pm
Si l'anglais ne te gêne pas, je te conseille de lire cette page (http://www.martyncurrey.com/bluetooth-modules/)
Title: Pilotage volet roulant 24V
Post by: thedarkprince on Sep 28, 2019, 10:57 pm
Bonjour,

Je possède deux fenêtres de toit avec des volets roulants fonctionnant en 24Vdc, la montée ou la descente s'effectue par inversion de polarité. Je souhaiterais piloter ces volets à l'aide d'un bouton poussoir mural double (ouverture/fermeture). Le fabricant propose uniquement un boîtier un peu onéreux fonctionnant avec une commande à pile pour piloter ses volets, or je voudrais vraiment passer par mon bouton mural classique.

Je pense que ça doit être faisable avec un Arduino et 2 relais, le soucis est que mes connaissances en Arduino sont très limitées, ça fait bien longtemps que je n'ai pas fais joujoux avec la carte, et surtout je manque de temps pour m'en occuper, étant en pleine restauration de ma maison...

Ma question est donc la suivante, y a t'il une âme charitable qui pourrait m'écrire un petit bout de programme pour gérer mes volets?? Si personne n'est motivé, je comprendrais.

Si quelqu'un est partant, voici le fonctionnement qu'il me faudrait :

Appui bref sur le bouton ouverture ou fermeture, j'active le relais 1 ou le relais 2 pendant 30 secondes (temps de course complète du volet). Si nouvel appui sur un bouton durant ces 30 secondes, arrêt du relais alimenté. Si appui sur un bouton supérieur à 2 secondes, le relais n'est activé que durant le temps d'appui.

Je possède 2 volets, il y aurait donc 2 boutons doubles et 4 relais.

Merci d'avance pour votre aide
Title: Re: Pilotage volet roulant 24V
Post by: fgland on Oct 01, 2019, 04:07 pm
Bonsoir,

il n'y a pas forcément besoin d'un arduino pour cela, j'ai fait un montage pour une porte de garage en 220v avec seulement quelques composants. Comme cela sort d'arduino, il faudrait me contacter directement.

Gérard
Title: Re: Pilotage volet roulant 24V
Post by: al1fch on Oct 01, 2019, 05:29 pm
Bonsoir,

Que fait cette demande dans le sous forum des projets FINIS, COMPLETS ?
(https://forum.arduino.cc/index.php?action=dlattach;topic=359876.0;attach=326568)

Demander au modérateur (lien report to moderator) le  déplacement à l'endroit prévu pour poser les questions, endroit indiqué dans le Règle du forum qu'il serait bon de découvrir..et suivre
Title: Re: Afficher du CSS et des images sur une page sur un Shield Ethernet
Post by: antibigben99 on Oct 04, 2019, 04:09 pm
Et en 2 heures tu n'as rien trouvé ???

1. Éteins la télé, la console, le téléphone, facebook, twitter, ...
2. Allume le cerveau (la veille prolongée c'est dangeureux)

Et pour bien démarrer, un petit coup de main quand même:
http://lmgtfy.com/?q=arduino+web+server

2ème choix proposé, tu n'as plus qu'à lire et implémenter.

PS: qu'appelles tu chercher ? poster sur différents forums et attendre que les autres fassent le boulot à ta place ?
gros con.
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: J-M-L on Oct 05, 2019, 08:27 pm
Tiens y' a un malpoli qui va être au coin des punis pour un moment...
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: jfs on Oct 06, 2019, 07:34 am
Tiens y' a un malpoli qui va être au coin des punis pour un moment...
C'est pour cette raison que je l'ai mis dans le bac à poubelle.... on arrive à retrouver des traces
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: J-M-L on Oct 06, 2019, 07:38 am
C'est pour cette raison que je l'ai mis dans le bac à poubelle.... on arrive à retrouver des traces
Bonne idée et 100% d'accord avec la décision. Les insultes ne sont pas tolérables
Title: Lancement et arrêt dede SimpleTimer à un instant précis du code
Post by: Ismaaiii on Oct 06, 2019, 09:12 pm
Bonjour,

J'avais remarqué qu'avec le SimpleTimer il faut lancer timer.run dans le loop, or  pour mon application, je n'est besoin de lancer timer que quand je veux lancer mes moteurs, en essayant quelques tentatives à lancer le timer que quand je lance mes moteurs (et donc dans la fonction du lancement des moteurs), les résultats ne sont pas satisfaisant, avez vous des suggestions?

Le problème est que si je mets timer.run dans la loop, elle va lancer les moteurs quand j'en ai pas besoin.

Merci.




EDIT de JFS : sujet en double avec déjà pas mal de réponses.....
Title: Thermostat
Post by: bdaguyane on Oct 10, 2019, 05:00 pm
Bonjour,

Pour fermenter de la bière à une température stable de 20 °C en Guyane oùu il fait 30 °C, j'essaye d'utiliser un arduino uno pour mesurer la température (DHT 22) dans un frigo et de déclencher un relais (2relay module) pour allumer et éteindre le frigo sur une plage de température entre 18 et 21 °C. L'idéal serait d'avoir la température en temps réel sur un écran (LCD 1602 module).

En rassemblant des informations sur différents tutos, forums etc on a le code ci-dessous. On arrive à lire la température, l'afficher dans le moniteur et ouvrir le relais lorsque la température est supérieur à 15 °C (température choisi pour tester notre code), mais il se referme après un délai et on arrive pas à le garder ouvert. Pour l'écran on est encore loin du compte.

Merci de votre aide


#include <DHT.h>
#define DHTPIN 2 // connexion de la pin digital du capteur sur la broche n°2
#define DHTTYPE DHT22   // on appelle le capteur dht22 dans la bibliothèque

//#define DHTTYPE DHT11 // Pour fonctionner avec le capteur DHT 11 
 
DHT dht(DHTPIN, DHTTYPE);
const int intTimePause = 10000;

int RELAIS = 10; // déclaration de la PIN 10 pour le relais
 
int THERMO = A0;// déclaration du potentiomètre

 
void setup() {
  Serial.begin(9600); //définition de la vitesse du port

   pinMode (THERMO, INPUT);
  pinMode (RELAIS, OUTPUT);
 
  Serial.println("Bienvenu sur les TUTORIELS d'IHM 3D");
 
  dht.begin();
}
 
void loop() {
 
 
  // attente d'1 seconde entre chaque mesure une fois la boucle revenue au début
  delay(5000);

  float h = dht.readHumidity();//lecture de l'humidité.
 
  float t = dht.readTemperature();//lecture de la température en degrés Celsius.
 
  // Si la lecture ne s'effectue pas
 
  if (isnan(h) || isnan(t)) {
  Serial.println ("Probleme de lecture, verifier votre systeme");
    return;
  }

 
     

if(t >15 )// si la température est inférieur ou égale à ma valeur stockée
delay (5000);

  {
    digitalWrite (RELAIS, HIGH);//alors j'allume le relais pour mon chauffage
    ;
  }
  else
  {
    digitalWrite (RELAIS, LOW);
   
  }
 

   
 
  Serial.print("Humidite: ");
  Serial.print(h);
  Serial.println (" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.println (" *C ");
 
}
Title: Re: Thermostat
Post by: Leptro on Oct 10, 2019, 05:18 pm
****************** mon radar ne fonctionne pas bien encore !!!*************

Bonsoir,

Tout d'abord mettez votre code entre balises.
Là c'est illisible.

J'ai du mal à lire si
Code: [Select]

delay(5000);
  est une instruction ou placée dans la ligne des commentaires.
Si ce n'est pas le cas, ça ne devrais pas compiler.

Néanmoins, vous devrez mettre en place une hystérésis (recherche à faire) pour la commutation.

 
Code: [Select]
if(t >15 )// si la température est inférieur ou égale à ma valeur stockée
delay (5000);

  {
    digitalWrite (RELAIS, HIGH);//alors j'allume le relais pour mon chauffage
    ;
  }
  else
  {
    digitalWrite (RELAIS, LOW);
   
  }


je ne comprends pas les commentaires vous voulez refroidir ou chauffer?
Title: Re: Thermostat
Post by: bdaguyane on Oct 10, 2019, 07:50 pm
C'est pour refroidir
Title: Aide : Chariot suiveur de personne
Post by: Yasmine33 on Oct 15, 2019, 11:19 am
Bonjour à tous,

J'ai l'intention de faire un petit robot suiveur de personne et porteur de charge pour mon projet.

Le problème se pose sur le type de technologies à utiliser pour que mon robot détermine la position de la personne pour ensuite la suivre.

Après plusieurs recherches plusieurs méthodes peuvent être appliqué au sujet avec une complexité plus ou moins importante :

   - Kit Grove 433Mhz (émetteur et récepteur) -> Pour la transmission d'ondes RF ok, mais pour déterminer la position je bloque.

   - Module Kinect

   
Pouvez-vous m'éclairer sur ce sujet ?

Merci d'avance
Title: Re: Aide : Chariot suiveur de personne
Post by: 68tjs on Oct 15, 2019, 12:32 pm
Bonjour,

C'est très bien de s'y prendre en avance mais porte une grande attention sur notre traitement des projets pour le bac dans le message épinglé "Règles du forum francophone".
Title: Re: Aide : Chariot suiveur de personne
Post by: lesept on Oct 15, 2019, 10:50 pm
Je viens de tomber sur ceci (https://www.hackster.io/aslamahrahiman/deep-reinforcement-learning-on-esp32-843928), l'utilisation d'un ESP32 pour apprendre à un robot à suivre une cible grâce au machine learning.
Title: Aide : Chariot suiveur de personne
Post by: Yasmine33 on Oct 17, 2019, 11:42 am
Bonjour,

Je souhaiterai savoir quelles sont les technologies adéquates pour faire un robot suiveur de personne, à l'aide d'un microcontrôleur :

Avec un capteur à ultrason ou un module RF 433MHz ou un module bluetooth ?

Merci d'avance
Title: Re: Aide : Chariot suiveur de personne
Post by: 68tjs on Oct 17, 2019, 10:21 pm
Là tu charrie.

Je t'ai conseillé de bien lire les Règles du forum francophone car j'ai détecté un sujet pour le bac : pas difficile le ton de la question est caractéristique et ce sujet revient régulièrement.

Et là non seulement tu n'en a pas tenu compte  en ne faisant aucun effort de recherche personnel mais en plus tu fait du double post CE QUI EST INTERDIT SUR TOUS LES FORUMS.

A mon avis tu es mal partie pour avoir de l'aide si tu ne te reprend pas très vite.
Commence par fournir un travail  personnel et seulement à ce moment tu pourra avoir de l'aide.

Le tic tac du Bak_Ka_Poux_Belle est enclenché.
Title: Re: Aide : Chariot suiveur de personne
Post by: PBZOOM on Oct 18, 2019, 11:05 am
dans l 'éventualité ou c 'est un sujet de l' éduc nationale
          ....a mon avis...
  un correcteur  aura  plus de chance de bien noter un sujet qui sort de l'ordinaire  ,  qu 'un copié collé  a 50 exemplaires...

             par contre .
il faut être un minimum critique sur l' énoncé  , cela évite les HORS SUJETS ...

            " les technologies adéquates "

adéquate   ,  tout dépend :
      *du  degrés d'interaction venant de celui qui est suivi vis a vis du suiveur ,
      *des capacitées du suiveur et
      * des interférences extérieures..

      .....un chien en laisse suis son maitre....

 a partir du moment ou vous aurais définis ces éléments ,  que ces dits éléments ne
   soient pas en opposition a l' énoncé du sujet.

 au regard des caractéristiques des différentes technologie que vous avez citées 
vous aurais des éléments de réponses ..

               ..a mon avis.
Title: Capteur infrarouge et interruption
Post by: Chrislid on Nov 02, 2019, 06:52 pm
Bonjour à tous !

Je suis newbee sur le forum et je viens partager le problème que je rencontre.
Environement hardware : Arduino uno
Capteur: Fourche infra-rouge à base de LM393

Software : IDE : v1.8.9
Sortie de la mesure/lecture sur le port série

Objectif : mesure de vitesse des pâles d'un ventilo

J'ai donc un relié un capteur infrarouge à un Arduino Uno qui délivre un signal bas (0v) lorsque le faisceau est coupé.
La pin utilisé est la pin D2 correspondant à l'interruption 0 (Sur Uno ou Mega).
Le capteur est relativement sensible et permet une mesure de vitesse (coupure du faisceau infrarouge) à une distance de plusieurs centimètres des pâles.
Le code est basé sur les interruptions car permettant d'être précis sur la mesure.
Celui fonctionne parfaitement mais au delà de 2000 tr/mn, l'information sur le moniteur serie indique une valeur complètement erronée qui oscille sur des valeurs basse tel que 45, 60, 120...alors que la vitesse du ventilateur augmente et dépasse donc les 2000tr/mn.
J'ai incriminé plusieurs hypothèses tel que les limites du capteur mais celui-ci est capable de mesuré bien au delà. J'ai changé de capteur et utilisé un capteur laser ==> idem.
J'ai amélioré le code et validé l'écriture des interruptions...mais là je sèche !
Auriez-vous une idée ? Ci joint le code utilisé :

const byte encoder_pin = 2; // pulse output from the module
volatile unsigned long rpm; // rpm reading
volatile byte pulses; // number of pulses
volatile unsigned long timeold;
// number of pulses per revolution
// based on your encoder disc
unsigned int pulsesperturn = 7;
void counter()
{
   //Update count
   pulses++;
}
void setup()
{
   Serial.begin(115200);
   pinMode(encoder_pin, INPUT);
   attachInterrupt(digitalPinToInterrupt(2), counter, FALLING); //Interrupt 0 is digital pin 2
   // init variables
   pulses = 0;
   rpm = 0;
   timeold = 0;
}
void loop()
{
   if (micros() - timeold >= 1000000) {
      //Don't process interrupts during calculations
      detachInterrupt(digitalPinToInterrupt(2));
      rpm = (60 * 1000000 / pulsesperturn )/ (micros() - timeold)* pulses;
      timeold = micros();
     
      Serial.print("RPM = ");
      Serial.println(rpm,DEC);
       pulses = 0;
      //Restart the interrupt processing
      attachInterrupt(digitalPinToInterrupt(2), counter, FALLING);
   }
}

Bien à vous.
Title: Re: Capteur infrarouge et interruption
Post by: kamill on Nov 02, 2019, 07:43 pm
Bonjour,

Mets ton code entre balises!

Tu déclares pulses comme byte. Au delà de 2000 rpm ça déborde. Déclare pulses comme unsigned.
Code: [Select]
volatile unsigned pulses; // number of pulses
Title: Re: fusion de programme
Post by: warjor1694 on Nov 07, 2019, 09:58 am
salut à tous. j'ai ce même problème de fusion de programme. je travaille sur l'automatisation de l'éclairage extérieur d'un bâtiment. les lampes doivent être commander par smartphone via le wifi (ça fonctionne très bien). et les même lampes doivent être aussi commander par une ldr au cas ou la commande par smartphone n'a pas été effectuer. chacun des deux programme fonctionne bien de leur coté. mais quand je fais la fusion, seule la ldr fonctionne et la carte ne génère mm plus de point d'accès. veuillez m'aider svp. c un travail a présenter après demain. svp. j'utilise comme microcontrôleur l'ESP8266 wemos D1.
voici le programme fusionner
Title: Re: Re: fusion de programme
Post by: 68tjs on Nov 07, 2019, 10:24 am
Il n'y a pas de travail urgent, il n'y a que des gens en retard.

Si tu avait lu les Règles du forum francophone tu aurais vu que pour aider il faut commencer par nous présenter un travail sérieux , nous ne faisons pas <à la place> surtout pour du travail scolaire.
Tu aurais vu aussi que le code se met entre balises code, tel que présenté  il est illisible à  partir d'un téléphone  ou d'une tablette.

Relis tes cours et ne viens pas nous dire que le prof est un nul.
Title: Re: Re: fusion de programme
Post by: kamill on Nov 07, 2019, 10:32 am
J'ajouterai qu'au lieu de squatter un sujet vieux de 4 ans tu devrais créer ton propre sujet.

La touche entrée de ton clavier ne fonctionne pas? Aères ton texte, un tel texte sans saut de ligne est imbita illisible.
Title: Ultrasonic Sensor Problem ?
Post by: Cedric406 on Nov 12, 2019, 12:21 am
Bonjour !! je suis un nouveau sur votre forum et aussi un passionné de l'outil Arduino. Je tiens à vous rappeler que je suis à mes débuts dans cet univers. Cependant j'ai eu à rencontrer quelques difficultés en ce qui concerne le capteur ultrason. Mon petit projet à pour but de commander un moteur, 09 LED  , ainsi qu'une sonnerie d'alarme à l'aide des distances déterminées par le  capteur ultrason.
J'ai réussi à faire le montage mais j'ai remarqué que : quand l'obstacle vient subitement devant le capteur le moteur s'arrête ( ce qui est normal), les LED s'allument mais l'alarme ne retenti pas. De la même façon quand l'obstacle vient de fason progressive et atteint la distance requise : le moteur ne s'arrête pas (ce qui n'est pas normal) , les LED s'allument et l'alarme est déclenché.
le mode d'évolution des obstacles (rapide ou progressif) a-t-il une influence sur les capteurs?
Dans le cas contraire est-ce que c'est mon programme qui est incorrect ?
Voilà le code :

Code: [Select]
//www.elegoo.com
//2016.12.08
#define DISABLE 13
 
 
 
 
int pinRelais = 9;
 
 
 
 
int tDelay=3000;
 
 
 
 
#include "SR04.h"
#define TRIG_PIN 12
#define ECHO_PIN 11
SR04 sr04 = SR04(ECHO_PIN,TRIG_PIN);
long a;
 
int greenLED = 0;
int greenLED2 = 1;
int greenLED3 = 2;
int yellowLED = 3;
int yellowLED2 = 4;
int yellowLED3 = 5;
int redLED = 6;
int redLED2 = 7;
int redLED3 = 8;
 
void setup() {
 
 pinMode (greenLED,OUTPUT);
 pinMode (greenLED2,OUTPUT);
 pinMode (greenLED3,OUTPUT);
 pinMode (yellowLED,OUTPUT);
 pinMode (yellowLED2,OUTPUT);
 pinMode (yellowLED3,OUTPUT);
 pinMode (redLED, OUTPUT);
 pinMode (redLED2,OUTPUT);
 pinMode (redLED3, OUTPUT);
 
 delay(3000);
 
 pinMode(DISABLE,OUTPUT);
 
   
 pinMode(pinRelais,OUTPUT);
 Serial.begin(9600);
 
 
 
}
 
void loop() {
  a=sr04.Distance();
  Serial.print(a);
  Serial.println("cm");
 //commande moteur
  if (a<40){
   Serial.println("extinction du moteur");
   digitalWrite(DISABLE,HIGH); // enable OFF
     delay(tDelay);
  }
  else if (a>=40){
   Serial.println("réarmement  du moteur");
   digitalWrite(DISABLE,LOW); // enable ON
     delay(tDelay);
  }
  // commande alarme
  if (a<80 && a>=0){
   Serial.println("declenchement  de l'alarme");
   digitalWrite(pinRelais,HIGH); // enable On
     delay(tDelay);
  }
     else if (a>=80){
       Serial.println("extinction  de l'alarme");
    digitalWrite(pinRelais,LOW); // enable OFF
     delay(tDelay); 
     }
 
 
 
  //Commande allumage LED 
  if(a<40){
   
  Serial.println("Allumage des Led vertes,  des LED jaune puis des LED rouge et réamement du moteur");
   digitalWrite(greenLED,HIGH);
   digitalWrite(greenLED2,HIGH);
   digitalWrite(greenLED3,HIGH);
   digitalWrite(yellowLED,HIGH);
   digitalWrite(yellowLED2,HIGH);
   digitalWrite(yellowLED3,HIGH);
   digitalWrite(redLED,HIGH);
   digitalWrite(redLED2,HIGH);
   digitalWrite(redLED3,HIGH);
    delay(tDelay);
 
  digitalWrite(pinRelais,HIGH); //
    digitalWrite(DISABLE,HIGH); // enable OFF
     
     
   
  }
  if(a>=40 && a<80){
   Serial.println("Allumage des Led vertes  et des LED jaune puis de la premiere et 2eme LED rouge. extinction  de la 3eme  LED rouge");
 
   digitalWrite(greenLED,HIGH);
   digitalWrite(greenLED2,HIGH);
   digitalWrite(greenLED3,HIGH);
   digitalWrite(yellowLED,HIGH);
   digitalWrite(yellowLED2,HIGH);
   digitalWrite(yellowLED3,HIGH);
   digitalWrite(redLED,HIGH);
   digitalWrite(redLED2,HIGH);
   digitalWrite(redLED3,LOW);
    delay(tDelay);
   //on active l'alarme
   digitalWrite(pinRelais,HIGH); //
   digitalWrite(DISABLE,LOW); // enable ON
     
  }
 
  if (a>=80 && a<100){
   
   Serial.println("Allumage des Led vertes  et des LED jaune puis de la premiere  LED rouge. extinction  des 2eme et 3eme  LED rouge");
 
   digitalWrite(greenLED,HIGH);
   digitalWrite(greenLED2,HIGH);
   digitalWrite(greenLED3,HIGH);
   digitalWrite(yellowLED,HIGH);
   digitalWrite(yellowLED2,HIGH);
   digitalWrite(yellowLED3,HIGH);
   digitalWrite(redLED,HIGH);
   digitalWrite(redLED2,LOW);
   digitalWrite(redLED3,LOW);
    delay(tDelay);
   //on Désactive l'alarme
   digitalWrite(pinRelais,LOW);
   digitalWrite(DISABLE,LOW); // enable ON
     
  }
 
 
  if (a>=100 && a<150){
   Serial.println("Allumage des Led vertes  et des LED jaune puis . extinction  deS   LED rouge");
 
   digitalWrite(greenLED,HIGH);
   digitalWrite(greenLED2,HIGH);
   digitalWrite(greenLED3,HIGH);
   digitalWrite(yellowLED,HIGH);
   digitalWrite(yellowLED2,HIGH);
   digitalWrite(yellowLED3,HIGH);
   digitalWrite(redLED,LOW);
   digitalWrite(redLED2,LOW);
   digitalWrite(redLED3,LOW);
    delay(tDelay);
   //on désactive l'alarme
   digitalWrite(pinRelais,LOW);
   digitalWrite(DISABLE,LOW); // enable ON 
     
  }
 
  if(a>=150 && a<200){
   Serial.println("Allumage des Led vertes  et des 1ere et 2eme LED jaune. extinction  de la 3ème LED jaune et des LED rouge");
   digitalWrite(greenLED,HIGH);
   digitalWrite(greenLED2,HIGH);
   digitalWrite(greenLED3,HIGH);
   digitalWrite(yellowLED,HIGH);
   digitalWrite(yellowLED2,HIGH);
   digitalWrite(yellowLED3,LOW);
   digitalWrite(redLED,LOW);
   digitalWrite(redLED2,LOW);
   digitalWrite(redLED3,LOW);
     delay(tDelay);
      digitalWrite(pinRelais,LOW); // enable on
      digitalWrite(DISABLE,LOW); // enable ON
           
  }
  if(a>=200 && a<250){
   Serial.println("Allumage des Led vertes  et de La  1ere LED jaune. extinction  de la  2ème et 3ème LED jaune et des LED rouge");
   digitalWrite(greenLED,HIGH);
   digitalWrite(greenLED2,HIGH);
   digitalWrite(greenLED3,HIGH);
   digitalWrite(yellowLED,HIGH);
   digitalWrite(yellowLED2,LOW);
   digitalWrite(yellowLED3,LOW);
   digitalWrite(redLED,LOW);
   digitalWrite(redLED2,LOW);
   digitalWrite(redLED3,LOW);
    delay(tDelay);
 // ALARME DESACTIVE
       digitalWrite(pinRelais,LOW); // enable on
      digitalWrite(DISABLE,LOW); // enable ON
  }
  if(a>=250 && a<350){
   Serial.println("Allumage des Led vertes  et  extinction dES LED jaune et des LED rouge");
   digitalWrite(greenLED,HIGH);
   digitalWrite(greenLED2,HIGH);
   digitalWrite(greenLED3,HIGH);
   digitalWrite(yellowLED,LOW);
   digitalWrite(yellowLED2,LOW);
   digitalWrite(yellowLED3,LOW);
   digitalWrite(redLED,LOW);
   digitalWrite(redLED2,LOW);
   digitalWrite(redLED3,LOW);
    delay(tDelay);
 // ALARME DESACTIVE
   digitalWrite(pinRelais,LOW); // enable on
       digitalWrite(DISABLE,LOW); // enable ON
         
  }
  if(a>=350 && a<400){
   Serial.println("Allumage de LA 1ère et 2ème Led verte  et extinction des LED jaune et rouge et 3ème LED VERTE");
   digitalWrite(greenLED,HIGH);
   digitalWrite(greenLED2,HIGH);
   digitalWrite(greenLED3,LOW);
   digitalWrite(yellowLED,LOW);
   digitalWrite(yellowLED2,LOW);
   digitalWrite(yellowLED3,LOW);
   digitalWrite(redLED,LOW);
   digitalWrite(redLED2,LOW);
   digitalWrite(redLED3,LOW);
    delay(tDelay);
 // ALARME DESACTIVE
 
   digitalWrite(pinRelais,LOW); // enable on
     digitalWrite(DISABLE,LOW); // enable ON 
       
  }
 
 
  if(a>=400){
   
 Serial.println("Allumage de LA 1ère  Led verte  et extinction des LED jaune et rouge et 3ème ET 2éme LED VERTE");
   digitalWrite(greenLED,HIGH);
   digitalWrite(greenLED2,LOW);
   digitalWrite(greenLED3,LOW);
   digitalWrite(yellowLED,LOW);
   digitalWrite(yellowLED2,LOW);
   digitalWrite(yellowLED3,LOW);
   digitalWrite(redLED,LOW);
   digitalWrite(redLED2,LOW);
   digitalWrite(redLED3,LOW);
    delay(tDelay);
 // ALARME DESACTIVE
 
   digitalWrite(pinRelais,LOW); // enable on
   digitalWrite(DISABLE,LOW); // enable ON
     
  }
 
 
 
 
 
 
}
 
 >
 
Title: Re: Ultrasonic Sensor Problem ?
Post by: al1fch on Nov 12, 2019, 12:12 pm
Bonjour et Bienvenue

Tout code publié sur ce forum doit être placé entre les balises appropriées faute de quoi il sera peu lu ....et le message risque de finir à la poubelle.
-> Il faut rééditer dans ce sens le message initial.

+ Quelle  est la 'valeur ajoutée' d'un titre en anglais sur un forum francophone ?

Prendre connaissance des messages épinglés en tête de Forum , messages qui précisent les Règles à suivre c'est  nécessaire quand on arrive sur un Forum !!

A+
Title: Re: Ultrasonic Sensor Problem ?
Post by: lesept on Nov 12, 2019, 02:34 pm
Il est probable que ton problème vienne du delay(tDelay) que tu mets un peu partout. Si tu arrêtes le code pendant 3 secondes, il lui est difficile de voir un obstacle approcher lentement (la fonction delay est bloquante : elle empêche toute autre exécution pendant ce délai).

Tu fais ton traitement de la distance en deux fois : d'abord pour la commande moteur & alarme, puis pour les LEDS. Mais tu as un delay au niveau du premier traitement et 3 secondes c'est assez long. Tu as aussi un delay dans chaque traitement...

De plus, tu devrais laisser les pins 0 et 1 inutilisées, elles servent à la communication série avec l'ordinateur (les Serial.print) : branche tes leds sur d'autres pins (14 et 15 par exemple).

J'ai commenté les delay, est-ce que ça fonctionne mieux ?

Code: [Select]
//www.elegoo.com
//2016.12.08
#define DISABLE 13
int pinRelais = 9;
int tDelay = 3000;
#include "SR04.h"
#define TRIG_PIN 12
#define ECHO_PIN 11
SR04 sr04 = SR04(ECHO_PIN, TRIG_PIN);
long a;

int greenLED = 0;
int greenLED2 = 1;
//  Attention ne pas utiliser ces pins (0 et 1) car elles sont réservées à la liaison série
int greenLED3 = 2;
int yellowLED = 3;
int yellowLED2 = 4;
int yellowLED3 = 5;
int redLED = 6;
int redLED2 = 7;
int redLED3 = 8;

void setup() {
  pinMode (greenLED,   OUTPUT);
  pinMode (greenLED2,  OUTPUT);
  pinMode (greenLED3,  OUTPUT);
  pinMode (yellowLED,  OUTPUT);
  pinMode (yellowLED2, OUTPUT);
  pinMode (yellowLED3, OUTPUT);
  pinMode (redLED,     OUTPUT);
  pinMode (redLED2,    OUTPUT);
  pinMode (redLED3,    OUTPUT);
  pinMode (DISABLE,    OUTPUT);
  pinMode (pinRelais,  OUTPUT);
  Serial.begin(9600);
}

void loop() {
  a = sr04.Distance();
  Serial.print(a);
  Serial.println("cm");
  //commande moteur
  if (a < 40) {
    Serial.println("extinction du moteur");
    digitalWrite(DISABLE, HIGH); // enable OFF
//    delay(tDelay);
  }
  else if (a >= 40) {
    Serial.println("réarmement  du moteur");
    digitalWrite(DISABLE, LOW); // enable ON
//    delay(tDelay);
  }
  // commande alarme
  if (a < 80 && a >= 0) {
    Serial.println("declenchement  de l'alarme");
    digitalWrite(pinRelais, HIGH); // enable On
//    delay(tDelay);
  }
  else if (a >= 80) {
    Serial.println("extinction  de l'alarme");
    digitalWrite(pinRelais, LOW); // enable OFF
//    delay(tDelay);
  }
  //Commande allumage LED
  if (a < 40) {
    Serial.println("Allumage des Led vertes,  des LED jaune puis des LED rouge et réamement du moteur");
    digitalWrite(greenLED, HIGH);
    digitalWrite(greenLED2, HIGH);
    digitalWrite(greenLED3, HIGH);
    digitalWrite(yellowLED, HIGH);
    digitalWrite(yellowLED2, HIGH);
    digitalWrite(yellowLED3, HIGH);
    digitalWrite(redLED, HIGH);
    digitalWrite(redLED2, HIGH);
    digitalWrite(redLED3, HIGH);
//    delay(tDelay); // es-tu sûr de vouloir attendre 3 secondes entre les LEDs et le relais ?
    digitalWrite(pinRelais, HIGH); //
    digitalWrite(DISABLE, HIGH); // enable OFF
  }
 
  if (a >= 40 && a < 80) {
    Serial.println("Allumage des Led vertes  et des LED jaune puis de la premiere et 2eme LED rouge. extinction  de la 3eme  LED rouge");
    digitalWrite(greenLED, HIGH);
    digitalWrite(greenLED2, HIGH);
    digitalWrite(greenLED3, HIGH);
    digitalWrite(yellowLED, HIGH);
    digitalWrite(yellowLED2, HIGH);
    digitalWrite(yellowLED3, HIGH);
    digitalWrite(redLED, HIGH);
    digitalWrite(redLED2, HIGH);
    digitalWrite(redLED3, LOW);
//    delay(tDelay);
    //on active l'alarme
    digitalWrite(pinRelais, HIGH); //
    digitalWrite(DISABLE, LOW); // enable ON
  }

  if (a >= 80 && a < 100) {
    Serial.println("Allumage des Led vertes  et des LED jaune puis de la premiere  LED rouge. extinction  des 2eme et 3eme  LED rouge");
    digitalWrite(greenLED, HIGH);
    digitalWrite(greenLED2, HIGH);
    digitalWrite(greenLED3, HIGH);
    digitalWrite(yellowLED, HIGH);
    digitalWrite(yellowLED2, HIGH);
    digitalWrite(yellowLED3, HIGH);
    digitalWrite(redLED, HIGH);
    digitalWrite(redLED2, LOW);
    digitalWrite(redLED3, LOW);
//    delay(tDelay);
    //on Désactive l'alarme
    digitalWrite(pinRelais, LOW);
    digitalWrite(DISABLE, LOW); // enable ON
  }

  if (a >= 100 && a < 150) {
    Serial.println("Allumage des Led vertes  et des LED jaune puis extinction  des LED rouge");
    digitalWrite(greenLED, HIGH);
    digitalWrite(greenLED2, HIGH);
    digitalWrite(greenLED3, HIGH);
    digitalWrite(yellowLED, HIGH);
    digitalWrite(yellowLED2, HIGH);
    digitalWrite(yellowLED3, HIGH);
    digitalWrite(redLED, LOW);
    digitalWrite(redLED2, LOW);
    digitalWrite(redLED3, LOW);
//    delay(tDelay);
    //on désactive l'alarme
    digitalWrite(pinRelais, LOW);
    digitalWrite(DISABLE, LOW); // enable ON
  }

  if (a >= 150 && a < 200) {
    Serial.println("Allumage des Led vertes  et des 1ere et 2eme LED jaune, extinction  de la 3eme LED jaune et des LED rouge");
    digitalWrite(greenLED, HIGH);
    digitalWrite(greenLED2, HIGH);
    digitalWrite(greenLED3, HIGH);
    digitalWrite(yellowLED, HIGH);
    digitalWrite(yellowLED2, HIGH);
    digitalWrite(yellowLED3, LOW);
    digitalWrite(redLED, LOW);
    digitalWrite(redLED2, LOW);
    digitalWrite(redLED3, LOW);
//    delay(tDelay);
    digitalWrite(pinRelais, LOW); // enable on
    digitalWrite(DISABLE, LOW); // enable ON
  }
  if (a >= 200 && a < 250) {
    Serial.println("Allumage des Led vertes  et de La  1ere LED jaune. extinction  de la  2eme et 3eme LED jaune et des LED rouge");
    digitalWrite(greenLED, HIGH);
    digitalWrite(greenLED2, HIGH);
    digitalWrite(greenLED3, HIGH);
    digitalWrite(yellowLED, HIGH);
    digitalWrite(yellowLED2, LOW);
    digitalWrite(yellowLED3, LOW);
    digitalWrite(redLED, LOW);
    digitalWrite(redLED2, LOW);
    digitalWrite(redLED3, LOW);
//    delay(tDelay);
    // ALARME DESACTIVE
    digitalWrite(pinRelais, LOW); // enable on
    digitalWrite(DISABLE, LOW); // enable ON
  }

  if (a >= 250 && a < 350) {
    Serial.println("Allumage des Led vertes et extinction des LED jaune et des LED rouge");
    digitalWrite(greenLED, HIGH);
    digitalWrite(greenLED2, HIGH);
    digitalWrite(greenLED3, HIGH);
    digitalWrite(yellowLED, LOW);
    digitalWrite(yellowLED2, LOW);
    digitalWrite(yellowLED3, LOW);
    digitalWrite(redLED, LOW);
    digitalWrite(redLED2, LOW);
    digitalWrite(redLED3, LOW);
//    delay(tDelay);
    // ALARME DESACTIVE
    digitalWrite(pinRelais, LOW); // enable on
    digitalWrite(DISABLE, LOW); // enable ON
  }

  if (a >= 350 && a < 400) {
    Serial.println("Allumage de LA 1ere et 2eme Led verte  et extinction des LED jaune et rouge et 3eme LED VERTE");
    digitalWrite(greenLED, HIGH);
    digitalWrite(greenLED2, HIGH);
    digitalWrite(greenLED3, LOW);
    digitalWrite(yellowLED, LOW);
    digitalWrite(yellowLED2, LOW);
    digitalWrite(yellowLED3, LOW);
    digitalWrite(redLED, LOW);
    digitalWrite(redLED2, LOW);
    digitalWrite(redLED3, LOW);
//    delay(tDelay);
    // ALARME DESACTIVE
    digitalWrite(pinRelais, LOW); // enable on
    digitalWrite(DISABLE, LOW); // enable ON
  }

  if (a >= 400) {
    Serial.println("Allumage de la 1ere  Led verte  et extinction des LED jaune et rouge et 3eme ET 2eme LED VERTE");
    digitalWrite(greenLED, HIGH);
    digitalWrite(greenLED2, LOW);
    digitalWrite(greenLED3, LOW);
    digitalWrite(yellowLED, LOW);
    digitalWrite(yellowLED2, LOW);
    digitalWrite(yellowLED3, LOW);
    digitalWrite(redLED, LOW);
    digitalWrite(redLED2, LOW);
    digitalWrite(redLED3, LOW);
//    delay(tDelay);
    // ALARME DESACTIVEE
    digitalWrite(pinRelais, LOW); // enable on
    digitalWrite(DISABLE, LOW); // enable ON
  }
}

Sinon, il faudrait envisager un code sous forme de machines à états. Il y a une discussion sur ce sujet (https://forum.arduino.cc/index.php?topic=644138.0) dans la partie 'Projets terminés' du forum
Title: Help please ....
Post by: Cedric406 on Nov 12, 2019, 06:48 pm
Bonjour !! je suis un nouveau sur votre forum et aussi un passionné de l'outil Arduino. Je tiens à vous rappeler que je suis à mes débuts dans cet univers. Cependant j'ai eu à rencontrer quelques difficultés en ce qui concerne le capteur ultrason. Mon petit projet à pour but de commander un moteur, 09 LED  , ainsi qu'une sonnerie d'alarme à l'aide des distances déterminées par le  capteur ultrason.
J'ai réussi à faire le montage mais j'ai remarqué que  l'allumage des  09 LED est beaucoup plus stable et précis. Mais hélas cependant le moteur tourne mais ne s'arrete pas quand l'obstacle est proche . l'alarme aussi  ne retenti pas.
A un moment jai essayé d'inclure les conditions d'allumage du moteur et de l'alarme dans la partie traitement des LEDS mais aucun résultat positif. Que faire ………
Voilà le code :
Code : [Select]
//www.elegoo.com
//2016.12.08
#define DISABLE 13




int pinRelais = 9;




int tDelay=3000;




#include "SR04.h"
#define TRIG_PIN 12
#define ECHO_PIN 11
SR04 sr04 = SR04(ECHO_PIN,TRIG_PIN);
long a;

int greenLED = 10;
int greenLED2 = 14;
int greenLED3 = 2;
int yellowLED = 3;
int yellowLED2 = 4;
int yellowLED3 = 5;
int redLED = 6;
int redLED2 = 7;
int redLED3 = 8;

void setup() {
 
  pinMode (greenLED,OUTPUT);
  pinMode (greenLED2,OUTPUT);
  pinMode (greenLED3,OUTPUT);
  pinMode (yellowLED,OUTPUT);
  pinMode (yellowLED2,OUTPUT);
  pinMode (yellowLED3,OUTPUT);
  pinMode (redLED, OUTPUT);
  pinMode (redLED2,OUTPUT);
  pinMode (redLED3, OUTPUT);
  pinMode(DISABLE,OUTPUT);
  pinMode(pinRelais,OUTPUT);
  Serial.begin(9600);

 

}

void loop() {
 
   
 
 
   a=sr04.Distance();
   Serial.print(a);
   Serial.println("cm");
   
  //commande moteur et alarme
   if (a<40){
    Serial.println("extinction du moteur et déclenchement de l'alarme");
    digitalWrite(DISABLE,HIGH); // enable low
    digitalWrite(pinRelais,HIGH); // enable On
    delay(1000);
     
   }
   else if (a>=40){
    Serial.println("réarmement  du moteur et extinction de l'alarme");
    digitalWrite(DISABLE,LOW); // enable ON
    digitalWrite(pinRelais,LOW); // enable low
     
   }
   
   
   //Commande allumage LED   
   if(a<40){
   
   Serial.println("Allumage des Led vertes,  des LED jaune puis des LED rouge et réamement du moteur");
    digitalWrite(greenLED,HIGH);
    digitalWrite(greenLED2,HIGH);
    digitalWrite(greenLED3,HIGH);
    digitalWrite(yellowLED,HIGH);
    digitalWrite(yellowLED2,HIGH);
    digitalWrite(yellowLED3,HIGH);
    digitalWrite(redLED,HIGH);
    digitalWrite(redLED2,HIGH);
    digitalWrite(redLED3,HIGH);
     
   
   }
   if(a>=40 && a<80){
    Serial.println("Allumage des Led vertes  et des LED jaune puis de la premiere et 2eme LED rouge. extinction  de la 3eme  LED rouge");

    digitalWrite(greenLED,HIGH);
    digitalWrite(greenLED2,HIGH);
    digitalWrite(greenLED3,HIGH);
    digitalWrite(yellowLED,HIGH);
    digitalWrite(yellowLED2,HIGH);
    digitalWrite(yellowLED3,HIGH);
    digitalWrite(redLED,HIGH);
    digitalWrite(redLED2,HIGH);
    digitalWrite(redLED3,LOW);
     
     
   }

   if (a>=80 && a<100){
   
    Serial.println("Allumage des Led vertes  et des LED jaune puis de la premiere  LED rouge. extinction  des 2eme et 3eme  LED rouge");

    digitalWrite(greenLED,HIGH);
    digitalWrite(greenLED2,HIGH);
    digitalWrite(greenLED3,HIGH);
    digitalWrite(yellowLED,HIGH);
    digitalWrite(yellowLED2,HIGH);
    digitalWrite(yellowLED3,HIGH);
    digitalWrite(redLED,HIGH);
    digitalWrite(redLED2,LOW);
    digitalWrite(redLED3,LOW);
   
     
   }
   
   
   if (a>=100 && a<150){
    Serial.println("Allumage des Led vertes  et des LED jaune puis . extinction  deS   LED rouge");

    digitalWrite(greenLED,HIGH);
    digitalWrite(greenLED2,HIGH);
    digitalWrite(greenLED3,HIGH);
    digitalWrite(yellowLED,HIGH);
    digitalWrite(yellowLED2,HIGH);
    digitalWrite(yellowLED3,HIGH);
    digitalWrite(redLED,LOW);
    digitalWrite(redLED2,LOW);
    digitalWrite(redLED3,LOW);
     
     
   }
   
   if(a>=150 && a<200){
    Serial.println("Allumage des Led vertes  et des 1ere et 2eme LED jaune. extinction  de la 3ème LED jaune et des LED rouge");
    digitalWrite(greenLED,HIGH);
    digitalWrite(greenLED2,HIGH);
    digitalWrite(greenLED3,HIGH);
    digitalWrite(yellowLED,HIGH);
    digitalWrite(yellowLED2,HIGH);
    digitalWrite(yellowLED3,LOW);
    digitalWrite(redLED,LOW);
    digitalWrite(redLED2,LOW);
    digitalWrite(redLED3,LOW);
     
           
   }
   if(a>=200 && a<250){
    Serial.println("Allumage des Led vertes  et de La  1ere LED jaune. extinction  de la  2ème et 3ème LED jaune et des LED rouge");
    digitalWrite(greenLED,HIGH);
    digitalWrite(greenLED2,HIGH);
    digitalWrite(greenLED3,HIGH);
    digitalWrite(yellowLED,HIGH);
    digitalWrite(yellowLED2,LOW);
    digitalWrite(yellowLED3,LOW);
    digitalWrite(redLED,LOW);
    digitalWrite(redLED2,LOW);
    digitalWrite(redLED3,LOW);
     
   }
   if(a>=250 && a<350){
    Serial.println("Allumage des Led vertes  et  extinction dES LED jaune et des LED rouge");
    digitalWrite(greenLED,HIGH);
    digitalWrite(greenLED2,HIGH);
    digitalWrite(greenLED3,HIGH);
    digitalWrite(yellowLED,LOW);
    digitalWrite(yellowLED2,LOW);
    digitalWrite(yellowLED3,LOW);
    digitalWrite(redLED,LOW);
    digitalWrite(redLED2,LOW);
    digitalWrite(redLED3,LOW);
   
 
         
   }
   if(a>=350 && a<400){
    Serial.println("Allumage de LA 1ère et 2ème Led verte  et extinction des LED jaune et rouge et 3ème LED VERTE");
    digitalWrite(greenLED,HIGH);
    digitalWrite(greenLED2,HIGH);
    digitalWrite(greenLED3,LOW);
    digitalWrite(yellowLED,LOW);
    digitalWrite(yellowLED2,LOW);
    digitalWrite(yellowLED3,LOW);
    digitalWrite(redLED,LOW);
    digitalWrite(redLED2,LOW);
    digitalWrite(redLED3,LOW);
   
       
   }

   
   if(a>=400){
   
  Serial.println("Allumage de LA 1ère  Led verte  et extinction des LED jaune et rouge et 3ème ET 2éme LED VERTE");
    digitalWrite(greenLED,HIGH);
    digitalWrite(greenLED2,LOW);
    digitalWrite(greenLED3,LOW);
    digitalWrite(yellowLED,LOW);
    digitalWrite(yellowLED2,LOW);
    digitalWrite(yellowLED3,LOW);
    digitalWrite(redLED,LOW);
    digitalWrite(redLED2,LOW);
    digitalWrite(redLED3,LOW);
   
     
   }

 
   
   

   
}
Title: Re: Help please ....
Post by: J-M-L on Nov 13, 2019, 06:58 am
Lisez les règles du forum et ne postez pas deux fois la même demande.
Quand vous aurez fait votre part du boulot correctement peut être vous aurez plus de chance qu'un bénévole se penche sur votre projet (scolaire ?)

c'est typiquement une définition de programme qui se prête bien à la programmation par machine à états (cf mon tuto éventuellement (http://forum.arduino.cc/index.php?topic=470879.0))
Title: Re: Help please ....
Post by: al1fch on Nov 13, 2019, 07:39 am
entre autres......
(https://forum.arduino.cc/index.php?action=dlattach;topic=359876.0;attach=332726)

Il est urgent d'éditer ce mail pour le mettre en conformité avant le passage  du Modérateur !!
Title: Re: Capteur infrarouge et interruption
Post by: Chrislid on Nov 15, 2019, 02:14 pm
@Kamill : merci c'est vraiment une faute de me... erreur de "débutant" inacceptable ;-)
Title: Bonjour, j'ai un petit problème le même message d'erreur s'affiche tout le temps
Post by: elelel on Nov 17, 2019, 10:12 am
Bonjour, j'ai un petit problème le même message d'erreur s'affiche tout le temps, mais impossible de trouver l'erreur j'espère que vous pouvez m'aider... mercii :)
Title: Re: AIDEZ MOI URGENT SVP !
Post by: J-M-L on Nov 17, 2019, 10:59 am
ça sent la poubelle...

lisez comment utiliser le forum (les posts épinglés en haut du forum comme "Bien éditer son post pour les nuls (http://forum.arduino.cc/index.php?topic=394754.0)" , "Faire un Nouveau Sujet ou le corriger avec les Balises... (http://forum.arduino.cc/index.php?topic=315372.0)" et "Règles du forum francophone (http://forum.arduino.cc/index.php?topic=546956.0)"), et faites un post "propre"
Title: comment orienté un laser dans toute les directions d'une pièce ?
Post by: Yissou67 on Dec 11, 2019, 12:07 pm
bonjour alors comme projet pour mon BAC de SIN en STI2D j'ai comme problématique "Comment pointer des indicateurs horaires fixés de façon quelconque aux 4 coins des murs d'une salle ?".

donc ma question est la suivante: quelle pièces dois-je acheté pour pouvoir réaliser mon projet ?


merci 
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: Christian_R on Dec 11, 2019, 12:47 pm
Regarde du côté des tourelles motorisées orientables sur 2 axes pan/ tilt si on n'a qu'un seul faisceau

Attention aux yeux avec un laser.
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: 68tjs on Dec 11, 2019, 01:37 pm
Bonjour,

Quote
Comment pointer des indicateurs horaires fixés de façon quelconque aux 4 coins des murs d'une salle ?".
Il faut être plus précis.
Relation entre un indicateur horaire et un laser ? Sans explication sur les "indicateurs horaires" je ne vois pas.
S'il s'agit réellement d'un laser quel est son type ?
Donne la liste du matériel imposé par le lycée.

Tu as reçu un sujet, tu dois maintenant te faire un cahier des charges : cela fait partie de ton travail.
Quand la première étape du cahier des charges est terminée tu passera à la suivante qui sera de trouver de déterminer le matériel adapté.
A cette étape on pourra te conseiller en soulignant les avantages ou les défauts de tes propositions.
La dernière étape sera la mise en œuvre où là aussi on pourra te conseiller à partir de ce que tu aura fait.

Rappelle toi que des questions vagues ne peuvent générer que des réponses vagues ou pas de réponses du tout, dans ton intérêt sois précis.
Title: Besoin d'aide pour projet !
Post by: Gam3erHD on Dec 29, 2019, 06:06 am
Bonsoir, j'aimerai de l'aide pour réaliser un projet. Le projet est le suivant : Contrôler différents éléments pour un aquarium avec un Arduino.



Je commence par exposer le matériel que je vais utiliser :


- Capteur de pression : https://www.gotronic.fr/art-capteur-de-pression-mpx5500dp-3797.htm
- Relais 12V : https://www.amazon.fr/dp/B0794TV186/?ref=idea_lv_dp_ov_d
- Sonde PH : https://www.amazon.fr/dp/B07JBXHGBT/?ref=idea_lv_dp_ov_d
- Arduino : https://www.amazon.fr/dp/B06XKZY117/?ref=idea_lv_dp_ov_d
- Relais 230V : https://www.amazon.fr/dp/B07D8RF6MK/?ref=idea_lv_dp_ov_d
- 2 Électrovannes : https://www.amazon.fr/dp/B00DFVVH58/?ref=idea_lv_dp_ov_d



Mes demandes sont les suivantes :



- Il y aura 2 bandes led RGB qui devront se démarrer à une heure précise (pas encore défini) et l'intensité lumineuse devra augmenter au fur et à mesure en 10 minutes. Evidemment pareil pour l'estinction, à une heure précise l'intensité baissera en 10 minutes.


- Quand les lumières sont allumé ma pompe à air doit être désactiver et quand les lumières s'active, la pompe elle est désactivé.


- Une de mes électrovanne doit être activé quand la lumière est activé et désactivé quand les lumière sont éteinte.


- La 2e électrovanne doit éjecter de la pression quand la bouteille est supérieur à 2bar


- Quand la température est Inférieur à 24°C et Supérieur à 29°C, un *BIP* devra se lancer.


- Pourvoir activé et désactiver l'alimentation de des filtres et du chauffage.




Bien sûre les équipements 230V ne sont pas indiqué ici car je l'ai est déjà, or il faudrait juste m'indiquer les broches ou brancher tel et tel équipement sur l'arduino.


Je n'ai pas de schéma si vous voulez en faire, libre à vous.


Merci de votre aide, bonne soirée ou bonne journée.

Title: Re: Besoin d'aide pour projet !
Post by: J4l13n on Dec 29, 2019, 08:35 am
Bonjour


un peu de lecture :

https://forum.arduino.cc/index.php?topic=546956.0 (http://forum.arduino.cc/index.php?topic=546956.0)

@+
Title: Re: Besoin d'aide pour projet !
Post by: biggil on Dec 29, 2019, 08:36 am
Mes demandes sont les suivantes :
Tu ne formules aucune demande...
Title: Re: Besoin d'aide pour projet !
Post by: J4l13n on Dec 29, 2019, 09:13 am
Tu ne formules aucune demande...
si lui faire son sketch avec ces éléments:
- Il y aura 2 bandes led RGB qui devront se démarrer à une heure précise (pas encore défini) et l'intensité lumineuse devra augmenter au fur et à mesure en 10 minutes. Evidemment pareil pour l'estinction, à une heure précise l'intensité baissera en 10 minutes.


- Quand les lumières sont allumé ma pompe à air doit être désactiver et quand les lumières s'active, la pompe elle est désactivé.


- Une de mes électrovanne doit être activé quand la lumière est activé et désactivé quand les lumière sont éteinte.


- La 2e électrovanne doit éjecter de la pression quand la bouteille est supérieur à 2bar


- Quand la température est Inférieur à 24°C et Supérieur à 29°C, un *BIP* devra se lancer.


- Pourvoir activé et désactiver l'alimentation de des filtres et du chauffage.


ma phrase préférée :

Je n'ai pas de schéma si vous voulez en faire, libre à vous.
@+
Title: Re: Besoin d'aide pour projet !
Post by: Leptro on Dec 29, 2019, 09:30 am
J4l13n et Biggil passez votre chemin.. vous allez perdre des cheveux!

J'ai commencer à lire avec intérêt pui ss tombé sur ça!

Je n'ai pas de schéma si vous voulez en faire, libre à vous.

Si j'avais le pouvoir je bloquerais ce compte d'emblée!


Title: Re: Besoin d'aide pour projet !
Post by: bidouilleelec on Dec 29, 2019, 10:01 am
Je n'ai pas de schéma si vous voulez en faire, libre à vous.

Merci pour l'autorisation.

Où est l'adresse de livraison ?
Title: Re: Besoin d'aide pour projet !
Post by: J-M-L on Dec 29, 2019, 10:48 am
ça sent la poubelle :)
Title: Re: Besoin d'aide pour projet !
Post by: jfs on Dec 29, 2019, 12:03 pm
Tic tac tic tac  :D
Title: Re: Besoin d'aide pour projet !
Post by: J4l13n on Dec 29, 2019, 02:45 pm
J4l13n et Biggil passez votre chemin.. vous allez perdre des cheveux!


J'en doute pas ... ça va partir à la benne dtf...

@+
Title: GPS ADAFRUIT BREAKOUT 66 V3.0 utilisation +comprehension libellé bibliotheque
Post by: didier2010 on Dec 31, 2019, 10:46 am
bonjour

Dans la continuite de post sur la liaison USB / module 433MHX emetteur : recepteur.

j'ai procedé hier à un test sur un terrain .

constat :

quand je demarre la partie mobile j'ai bien les coordonnées qui s'affichent mais celles ci ne changent pas si le mobile se deplace .  il faut reseter ou eteindre le mobile pour que les données changent à initialisation du gps)
Normalement les coordonnées devraient changées en fonction du deplacement mobile.

Question 1 : Pourquoi les données se changement atomaitquement , une erreur dans le stech si dessous?

Question 2 : dans les exemples ADAFruit j'ai des libellés HardwareSerial_XXXXX et du SoftwareSerial_XXXX
                   XXXX   etant dentique .   
                   j'ai pas compris la difference entre  HardwareSerial et SoftwareSerial
                    ex: SoftwareSerial_Locus_START et HardwareSerial_Locus_START  , leque choisir ?




materiel utilise :
 
Partie mobile 2560+gps+module 433
 
Partie Fixe un portable pc windows 10 + recepteur module 433 ( pour visualiser les données recues en temps reel  mode de serial monitor ou logiciel terminal de windows 10.)


le sketch  ( issus de ADAFRUIT) injecté dans la 2560 est celui-ci . ( seules des coordoonnées GPS m'interessent, j'ai donc ecarté les données non retenues placée en commentaire avec //)



Code: [Select]

// Test code for Ultimate GPS Using Hardware Serial (e.g. GPS Flora or FeatherWing)
//
// This code shows how to listen to the GPS module via polling. Best used with
// Feathers or Flora where you have hardware Serial and no interrupt
//
// Tested and works great with the Adafruit GPS FeatherWing
// ------> https://www.adafruit.com/products/3133
// or Flora GPS
// ------> https://www.adafruit.com/products/1059
// but also works with the shield, breakout
// ------> https://www.adafruit.com/products/1272
// ------> https://www.adafruit.com/products/746
//
// Pick one up today at the Adafruit electronics shop
// and help support open source hardware & software! -ada

#include <Adafruit_GPS.h>

// what's the name of the hardware serial port?
#define GPSSerial Serial1

// Connect to the GPS on the hardware port
Adafruit_GPS GPS(&GPSSerial);

// Set GPSECHO to 'false' to turn off echoing the GPS data to the Serial console
// Set to 'true' if you want to debug and listen to the raw GPS sentences
#define GPSECHO false

uint32_t timer = millis();
int valtoto;

void setup()
{
  //while (!Serial);  // uncomment to have the sketch wait until Serial is ready

  // connect at 115200 so we can read the GPS fast enough and echo without dropping chars
  // also spit it out
  Serial.begin(57200);
  Serial2.begin (57200,SERIAL_8N1);// pour port usb 433
  Serial2.println("Adafruit GPS library basic test!");

  // 9600 NMEA is the default baud rate for Adafruit MTK GPS's- some use 4800
  GPS.begin(9600);
  // uncomment this line to turn on RMC (recommended minimum) and GGA (fix data) including altitude
  GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA);
  // uncomment this line to turn on only the "minimum recommended" data
  //GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCONLY);
  // For parsing data, we don't suggest using anything but either RMC only or RMC+GGA since
  // the parser doesn't care about other sentences at this time
  // Set the update rate
  GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ); // 1 Hz update rate
  // For the parsing code to work nicely and have time to sort thru the data, and
  // print it out we don't suggest using anything higher than 1 Hz

  // Request updates on antenna status, comment out to keep quiet
  GPS.sendCommand(PGCMD_ANTENNA);

  delay(1000);

  // Ask for firmware version
  GPSSerial.println(PMTK_Q_RELEASE);
 
 
 
}

void loop() // run over and over again
{
  // read data from the GPS in the 'main loop'
  char c = GPS.read();
  // if you want to debug, this is a good time to do it!
  if (GPSECHO)
   
    if (c) Serial2.print(c);
  // if a sentence is received, we can check the checksum, parse it...
  if (GPS.newNMEAreceived()) {
    // a tricky thing here is if we print the NMEA sentence, or data
    // we end up not listening and catching other sentences!
    // so be very wary if using OUTPUT_ALLDATA and trying to print out data
   // Serial2.println(GPS.lastNMEA()); // this also sets the newNMEAreceived() flag to false
    if (!GPS.parse(GPS.lastNMEA())) // this also sets the newNMEAreceived() flag to false
      return; // we can fail to parse a sentence in which case we should just wait for another
  }
  // if millis() or timer wraps around, we'll just reset it
  if (timer > millis()) timer = millis();
                                                     
  // approximately every 2 seconds or so, print out the current stats
  if (millis() - timer > 2000) {//2000
    timer = millis(); // reset the timer
 
   
  }
   
   
 
 
 
 
  //Serial2.print("\nTime: ");
   // if (GPS.hour < 10) { Serial2.print('0'); }
  //  Serial2.print(GPS.hour, DEC); Serial2.print(':');
   // if (GPS.minute < 10) { Serial2.print('0'); }
   // Serial2.print(GPS.minute, DEC); Serial2.print(':');
    //if (GPS.seconds < 10) { Serial2.print('0'); }
   // Serial2.print(GPS.seconds, DEC); Serial2.print('.');
   // if (GPS.milliseconds < 10) {
   //   Serial2.print("00");
   // } else if (GPS.milliseconds > 9 && GPS.milliseconds < 100) {
   //   Serial2.print("0");
   // }
    //Serial2.println(GPS.milliseconds);
    //Serial2.print("Date: ");
    //Serial2.print(GPS.day, DEC); Serial2.print('/');
    //Serial2.print(GPS.month, DEC); Serial2.print("/20");
    //Serial2.println(GPS.year, DEC);
    //Serial2.print("Fix: "); Serial2.print((int)GPS.fix);
    //Serial2.print(" quality: "); Serial2.println((int)GPS.fixquality);
   
    if (GPS.fix) {
      //Serial2.print("Location: ");
     
     
     
      //Serial2.print("LATITUDE=");
     Serial2.print(GPS.latitude, 4); Serial2.print(GPS.lat);
     Serial.print("LATITUDE="); Serial.print(GPS.latitude, 4); Serial.print(GPS.lat);
     
      Serial2.print(", ");
      Serial.print(", ");
     
      //Serial2.print("LONGITUDE=");
      Serial2.print(GPS.longitude, 4); Serial2.println(GPS.lon);
      Serial.print("LONGITUDE="); Serial.print(GPS.longitude, 4); Serial.println(GPS.lon);
     
      Serial2.print(", ");
      Serial.print(", ");
       delay(500);
      Serial.print("Fix: "); Serial.print((int)GPS.fix);
      Serial.print(" quality: "); Serial.println((int)GPS.fixquality);
      Serial.print("Satellites: "); Serial.println((int)GPS.satellites);
      //Serial2.print("Speed (knots): "); Serial2.println(GPS.speed);
      //Serial2.print("Angle: "); Serial2.println(GPS.angle);
      //Serial2.print("Altitude: "); Serial2.println(GPS.altitude);
      //Serial2.print("Satellites: "); Serial2.println((int)GPS.satellites);
    }
 
}




merci de votre aide
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: Yissou67 on Jan 08, 2020, 10:11 am
merci christian


et oui c'était pas précis mais c'est notre problématique, on doit travailer sur un projet floux comme vous l'aviez dit
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: 68tjs on Jan 08, 2020, 05:36 pm
Quote
et pas d'accord avec toi 68jts ,c'est lui le prof qui aurai du faire un cahier des charges (je pense ), il y a un minimum quand même .
Absolument pas. C'est quand même pour le bac, les "drôles" ont quand même au minimum 18 ans dans l'année, et souvent plus.
Un candidat, un seul a eu cette honneteté, nous a donné le document officiel qu'ils reçoivent. Franchement il sont pris par la main et guidés pas à pas, presque semaine par semaine.

De plus ils ont tous fait une classe de première avant d'être en terminale et sur ce plan la classe de première c'est l'apprentissage de ce qu'ils devront faire en terminale.
Ils ont fait les répétitions en première, en terminale ils jouent la générale.
La seule nouveauté c'est que cette fois c'est du sérieux il y a un examen au bout.

Dis toi qu'ils sont plusieurs milliers à faire cet exercice pour le bac et qu'on n'entend pas l'écrasante majorité.
Title: Code barre
Post by: THEDoctor1209 on Jan 09, 2020, 04:02 pm
Bonjour j'ai besoin dans mon projet d'utiliser un lecteur de code barre
DFR0314.

Je cherche à récupérer les informations de différents code barres alimentaires
tel que la nature du produit. (lait, beurre, fromage)

Or je n'arrive pas a programmer le lecteur de code via les docs constructeurs, et le programme qui met donné.

Je choisis le mode 9600 bauds mais le capteur ne garde pas la configuration que je veux

Comment dois-je faire pour scanner le code barre et récupérer les informations

Merci d'avance.
Title: Re: Code barre
Post by: fdufnews on Jan 09, 2020, 04:53 pm
On est pas des chiens truffier et on a mieux à faire qu'écumer le net à la recherche des docs.
La moindre des choses serait de fournir TOUTES docs ou des liens vers celles-ci pour que l'on puisse répondre aux questions.
Un schéma du montage serait aussi pas mal.
Parce que quand je regarde la doc du produit moi je vois ça
Quote
Ce lecteur de code-barres de DFRobot est basé sur une caméra CCD et communique via une liaison RS232 (nécessite un convertisseur RS232-TTL pour fonctionner avec un microcontrôleur Arduino par exemple)
et évidemment, je me pose des questions sur le raccordement et je ne suis sans doute pas le seul.
Il n'est pas impossible que tu ais mal à ton arduino si tu l'as mal branché.....
Title: Mini-Serre automatisé
Post by: soldieramerica on Jan 10, 2020, 10:29 am
Bonjour à tous, je suis actuellement en Terminale STI2D ITEC et mon projet de cette année est de automatiser la mini-serre Socker de chez ikéa : https://www2.ikea.com/fr/fr/p/socker-serre-blanc-interieur-exterieur-70186603/

Je dois m'occuper du système d'ouverture et fermeture de la serre et je suis à court d'idées pour le faire. Pourriez vous m'aider en me donnant des pistes pour avancer ? Merci d'avance ! 
Title: afficheur 7 segements
Post by: broking on Jan 10, 2020, 11:03 am
j'ai un afficheur 7 segment et j'aimerai pouvoir entrer des chiffres dans le moniteur série et qu'il les affiches.

j'ai un code comme celui-ci.


byte ledPin[8]={0, 1, 2, 3, 4, 5, 6, 7};                                   // tableau des numéros de broches
byte code[10]={63,6,91,79,102,109,124,7,127,103};    // tableau des codes de chaque chiffre


void setup()
{                
for (int x=0; x<8; x++)                                                       // initialisation des broches en sortie
  {
  pinMode(ledPin
  }
}


void loop()
{
 for (int y=0; y<10; y++)      
  {
   afficher(code[y]);
   delay(1000);
  }
 
}

void afficher(byte x)                                                             // fonction qui allume les 7 segments en fonction du chiffre
{
byte chiffre=x;
byte segment=0;
for (int i=0; i<9; i++)
  {
     segment=chiffre&00000001;                                     // masque pour récupérer le bit de poids faible (segment a)
     digitalWrite(i,segment);                                              // allumage du segment correspondant
     chiffre=chiffre>>1;                                                      // décalage à droite pour récupérer les bit suivants (segment b à g)
  }  
}
Title: Re: afficheur 7 segements
Post by: J-M-L on Jan 10, 2020, 12:30 pm
il y a un carré noir dans votre code....

Lisez comment utiliser le forum (les posts épinglés en haut du forum comme "Bien éditer son post pour les nuls (http://forum.arduino.cc/index.php?topic=394754.0)" , "Faire un Nouveau Sujet ou le corriger avec les Balises... (http://forum.arduino.cc/index.php?topic=315372.0)" et "Règles du forum francophone (http://forum.arduino.cc/index.php?topic=546956.0)"), et faites un post "propre"
Title: Re: Mini-Serre automatisé
Post by: al1fch on Jan 10, 2020, 01:53 pm
Bonjour

1) Prends quelques secondes pour bien lire le nom du sous forum dans lequel tu postes ton messages !!
   et regardes les messages qui y figurent ......
Que fait ton messages à l'endroit où sont présentées les choses F I N I E S ?   

-> Utilises  le lien 'Report to moderator' pour demander le déplacement au bon endroit

2) Prends quelques minutes pour découvrir les Règles du Forum Francophone (https://forum.arduino.cc/index.php?topic=546956.0) et tiens en compte pour la suite si tu comptes avoir des réponses.
Title: Re: Mini-Serre automatisé
Post by: guy06210 on Jan 10, 2020, 03:38 pm
https://forum.arduino.cc/index.php?topic=326758.0
Title: Re: afficheur 7 segements
Post by: lesept on Jan 10, 2020, 05:23 pm

Note qu'on a de la chance car plus bas il y a [y]...

Déjà, ce sera dur d'utiliser le moniteur série puisque l'afficheur utilise les pins 0 et 1 ...
Title: Re: Code barre
Post by: THEDoctor1209 on Jan 11, 2020, 09:10 am
Alors si je vous met la référence du capteur et que vous êtes un minimum cultivé, vous saurez que je demande un programme autre que celui donner car après test de celui-ci avec des branchements avec le convertisseur rs232 vers TTl cela ne marche pas !

SI vous êtes intelligent, vous copier la référence DFR0314 et vous trouver toutes les docs constructeurs mais cela est trop dur pour vous
Title: Re: Code barre
Post by: al1fch on Jan 11, 2020, 09:42 am
Tu n'as visiblement pas encore compris le fonctionnement de CE forum et le ton que tu emploies n'est pas admissible.

Un peu de lecture içi : https://forum.arduino.cc/index.php?topic=546956.0 (https://forum.arduino.cc/index.php?topic=546956.0)

Title: Re: Code barre
Post by: J-M-L on Jan 11, 2020, 10:55 am
SI vous êtes intelligent, vous copier la référence DFR0314 et vous trouver toutes les docs constructeurs mais cela est trop dur pour vous
SI vous êtes intelligent vous comprendrez bien que pour obtenir de l'aide de bénévoles pour VOTRE problème, il vaut mieux leur simplifier la vie....

Vu votre attitude et votre ton, cela va rester VOTRE problème, perso j'ai mieux à faire de mon temps et de mes neurones.

Bonne fin de journée
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: hbachetti on Jan 12, 2020, 09:30 am
A la benne à ordures ... c'était prévisible ... et mérité.
Title: Re: Module ESP8266
Post by: nolo on Jan 17, 2020, 08:33 pm
En fait j'ai commandé un pack de 4 ESP8266 ESP1
J'ai refait le tuto : tuto (https://www.youtube.com/watch?v=dKFcEDy2q5M) avec un 2ème module ESP et une carte MEGA

La petite led s'allume, aucune réponse aux commandes AT à partie de la console série

Bonjour,   pas facile esp 01    8266   en  faite le fonctionnement est assez simple  mais je te conseil plustot le
Node MCU  avec l esp 8266  plus facile d emploi et pas plus chère .
Title: Re: Re: Module ESP8266
Post by: nolo on Jan 17, 2020, 08:41 pm
Bonjour , J ai un programme pour afficher la valeur et la temperature d une balance  sur une page web . Mon probleme ,je souhaite utilisé la commande deeps sleeps pour mettre en sommeil le programme  et surtout le reveille du programme toute les 3 heures  mais ont me dit que le  esp8266 na pas de RCT contrairement à l esp 32

Carte utilisé Node MCU 8266  .Ce programme fonctionne mais pas d arret pour le sommeil profond

#include <Duinoedu_Esp8266.h>
#include <HX711.h>
#include <OneWire.h>
#include <Duinoedu_DallasTemperature.h>

Duinoedu_Esp8266 MonEsp;
ESP8266WebServer server ( 80 );
HX711 scale;
String ruche1="";
void handleXML(){
  server.send(200,"text/xml",buildXML());
}
OneWire oneWire_D4(D4);
Duinoedu_DallasTemperature mySensor_D4(&oneWire_D4);
String Temperature="";

void setup()
{
  MonEsp.connect_AP("Wireless-N","loz");//The command will only work if the password length is 8 characters or more.
  server.on ( "/", handleRoot );
  server.begin(); 
  Serial.println ( "HTTP server started" );
  scale.begin(D2,D3);//DOUT, CLK
  scale.set_scale(-16500);
  scale.tare();
  server.on ( "/xml", handleXML );
  mySensor_D4.begin();
}

void handleRoot(){



  server.send ( 200, "text/html", getPage() );
  delay(10);
}

String buildJavascript(){
  String javaScript=MonEsp.javaScript_start();
  javaScript+="document.getElementById('ruche1').innerHTML = this.responseXML.getElementsByTagName('ruche1')[0].childNodes[0].nodeValue\n";
  javaScript+="document.getElementById('Temperature').innerHTML = this.responseXML.getElementsByTagName('Temperature')[0].childNodes[0].nodeValue\n";
  javaScript+=MonEsp.javaScript_end();
  return javaScript;
}

String buildXML(){
  String XML="<?xml version='1.0'?><inputs>";
  XML+="<ruche1>";
  XML+=ruche1;
  XML+="</ruche1>";
  XML+="<Temperature>";
  XML+=Temperature;
  XML+="</Temperature>";
  XML+="</inputs>";
  return XML;
}

String getPage(){
#define PAGE_EXIST
  String  page = "<!DOCTYPE html><html><head><meta charset='ISO-8859-15'>";
  page += "<title>DUINOEDU - www.duinoedu.com</title></head>";
  page += MonEsp.addPhoneStyle();
  page += "<BODY onload='process()'>";       
  page += "<h2>titre</h2>";
  page += buildJavascript();
  page += "ruche1 = <A class=value id='ruche1'></A><hr>";
  page += buildJavascript();
  page += "Temperature = <A class=value id='Temperature'></A><hr>";
  page += "</body>";
  page += "</html>";
  return page;
}

void loop()
{
#ifdef PAGE_EXIST
  server.handleClient();
  delay(10);
#endif
  scale.set_scale(-16500);
  ruche1=String(scale.get_units());
  Temperature=String(mySensor_D4.readTemperatureInDegreesAndReturnFloat());
}
Title: Re: Re: Module ESP8266
Post by: 68tjs on Jan 17, 2020, 09:14 pm
@nolo
Un nodemcu et un UNO+ ESP cela fait la même fonction mais ce n'est pas la même chose et cela ne se programme pas de la même façon. Il faut savoir s'il veut ou pas changer de matériel.

CONSEIL : lit les "Règles du forum francophone" et "Comment faire un nouveau sujet avec les balises "(pour le code)
si tu ne veux pas que ton message parte à la poubelle.
Cd   Bac-Ka-Poux-Bêle 2019-2020 (http://"https://forum.arduino.cc/index.php?topic=359876.0")

Et demande (après mise aux normes) le déplacement de ta question (Report to moderator)

Cela ne se fait pas de dévier le sujet d'un autre.
Title: Re: Re: Module ESP8266
Post by: nolo on Jan 17, 2020, 09:21 pm
OK   je ne connais pas cette regle 
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: Yissou67 on Jan 20, 2020, 09:19 am
j'ai oublié de précisé mais 68tjs à dit des trucs vrais


et AlienArea51 "y a un sérieux problème au niveau éducation national "

jsp comment c'est ailleurs mais t'as raison. faut parler au prof tout le temps, et c'est comme ça qu'on remplis notre cahier des charge, et moi je trouve mes que mes profs de techno ne s'appliquent pas dans leurs taff, par exemple ils donnent des TP arduino noté, avec un programme de base mais qui est faux, ou non testé, ou découverte pendant le cours, et se prendre de mauvaise notes comme ça c'est chiant. ça m'a dégouté de la STI2D
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: J-M-L on Jan 20, 2020, 11:35 am
moi je trouve mes que mes profs de techno ne s'appliquent pas dans leurs taff, par exemple ils donnent des TP arduino noté, avec un programme de base mais qui est faux, ou non testé, ou découverte pendant le cours, et se prendre de mauvaise notes comme ça c'est chiant. ça m'a dégouté de la STI2D
<DEBUT MODE MAUVAISE HUMEUR>
Mouais... ma vision du truc c'est qu'à l'ère d'internet on n'a plus besoin de ces profs nuls, désabusés, syndiqués, grévistes, je-m'en-foutistes qui n'ont aucune valeur ajoutée dans le processus d'apprentissage.
Tout est dispo sur internet si vous voulez vous en donnez la peine, il n'y a qu'à piocher.
Un prof ne devrait plus être un "sage sur l'estrade" ('a sage on stage' dans la recherche académique sur les savoirs) qui débite maladroitement et sans passion une histoire que vous pouvez lire vous même à votre rythme sur internet et qui sera sans doute mieux expliquée en multimédia, il devrait être là pour guider les élèves vers les bons supports pour se préparer et ensuite organiser le cours pour discuter de ces apprentissages. C'est le concept de 'flipped classroom' qui est utilisé dans nombre de pays et qui a très largement fait ses preuves dans la motivation, l'adaptation aux vitesses de chacun, et de la compréhension et mémorisation des savoirs pour les apprenants.
Vous êtes presque un adulte, donc si vous trouvez que votre prof est nul, prenez vous par la main, n'attendez pas que ça tombe tout cuit, ne tombez pas dans le travers de cette société d'assistés mécontents de tout et n'en fichant pas une, et bossez de votre côté...
<FIN MODE MAUVAISE HUMEUR>


sinon oui un "2 Axis Servo Pan Tilt kit avec Servos" vous permettra d'installer un petit laser (attention à la puissance) et en pilotant les 2 axes ça vous permet de pointer un peu partout

(https://forum.arduino.cc/index.php?action=dlattach;topic=653189.0;attach=342759)
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: icare on Jan 20, 2020, 11:51 am
Bonjour,
<DEBUT MODE MAUVAISE HUMEUR>
Mouais... ma vision du truc c'est qu'à l'ère d'internet on n'a plus besoin de ces profs nuls, désabusés, syndiqués, grévistes, je-m'en-foutistes qui n'ont aucune valeur ajoutée dans le processus d'apprentissage.
Tout est dispo sur internet si vous voulez vous en donnez la peine, il n'y a qu'à piocher.
Un prof ne devrait plus être un "sage sur l'estrade" ('a sage on stage' dans la recherche académique sur les savoirs) qui débite maladroitement et sans passion une histoire que vous pouvez lire vous même à votre rythme sur internet et qui sera sans doute mieux expliquée en multimédia, il devrait être là pour guider les élèves vers les bons supports pour se préparer et ensuite organiser le cours pour discuter de ces apprentissages. C'est le concept de 'flipped classroom' qui est utilisé dans nombre de pays et qui a très largement fait ses preuves dans la motivation, l'adaptation aux vitesses de chacun, et de la compréhension et mémorisation des savoirs pour les apprenants.
Vous êtes presque un adulte, donc si vous trouvez que votre prof est nul, prenez vous par la main, n'attendez pas que ça tombe tout cuit, ne tombez pas dans le travers de cette société d'assistés mécontents de tout et n'en fichant pas une, et bossez de votre côté...
<FIN MODE MAUVAISE HUMEUR>

La meilleure formation que l'on puisse avoir, c'est celle que l'on se donne soi même.
Pour exemple, certaines grandes écoles (je ne les citerai pas pour rester anonyme  :smiley-mr-green: ) dispensent à leurs élèves comment apprendre et se former.
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: 68tjs on Jan 20, 2020, 11:57 am
Et sans motivation de l'élève le meilleur professeur non gréviste ne pourra rien.

<mode en colère>
Comment expliquer que l'EN ne trouve plus de candidat pour être professeur ?
Étonnant pour un métier aussi facile et avec tant d'avantages.
<Fin mode en colère>
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: J-M-L on Jan 20, 2020, 12:26 pm
<mode en colère>
Comment expliquer que l'EN ne trouve plus de candidat pour être professeur ?
Étonnant pour un métier aussi facile et avec tant d'avantages.
<Fin mode en colère>
<mode second degré en partie>

Parce qu'ils ne recrutent quand même pas les trop nuls et que la majorité de ceux qui ont une formation décente n'ont pas envie de travailler pour le mammouth et étant payé 3 francs six sous alors qu'ils peuvent avoir un bien meilleur boulot et cadre de travail. Ils ne veulent pas non plus avoir pour collègues ceux qu'ils ont vu pendant leurs études, des grévistes socialo-communistes syndiqués qui ne veulent pas bosser et qui sont opposés par principe au changement. (NB: bon là j'appuie un peu pour le fun, je sais que c'est un terrain sensible et que je fais de la généralisation abusive ;) )

Donc il ne reste que les glandus qui ont quand même réussi à décrocher un diplôme qui se disent que c'est un job planqué s'ils se débrouillent bien et les vrais passionnés de la pédagogie... Ceux là se font de plus en plus rare tellement l'administration (noyautée par des incapables) leur met des batons dans les roues tout au long de leur carrière quand ils font preuve de la moindre initiative qui sort du cadre (j'ai l'exemple en ce moment avec un super prof de maths en lycée, adoré par ses élèves, qui tient aussi sur son temps libre en bénévole l'atelier scientifique et qui vit un cauchemar administratif pour le faire fonctionner et pression/insultes d'autres profs qui trouvent qu'il ne devrait pas en faire tant pour les élèves...)

<fin mode second degré en partie>

@Yissou67 - désolé d'avoir pollué votre sujet - on va aller discuter de ça dans le bar je pense :)
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: 68tjs on Jan 20, 2020, 01:15 pm
Exactement ce n'est pas le lieu.
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: biggil on Jan 20, 2020, 03:43 pm
par exemple ils donnent des TP arduino noté, avec un programme de base mais qui est faux, ou non testé, ou découverte pendant le cours
Mais c'est l'apprentissage de la vraie vie, ça, mon ami !
Dans la vraie vie, il y a toujours un bug dans le potage.
Autant apprendre à le trouver dès l'école, non ?
Title: Latence Servo moteur
Post by: Wizeep on Jan 20, 2020, 06:25 pm
Bonjour à tous !

J'ai un petit problème, je suis sur un projet avec une Arduino Nano, j'utilise un MPU6050, un BMP180, deux servo 9g et un module de carte SD.

Les moteurs bougent en fonction du MPU6050.

Mon problème : Lorsque je lance le programme, mes moteurs ont 2 ont une latence. Et quand je retire le BMP180, mes servos deviennent dynamique.

Je pense que c'est un soucis de SRAM qui est trop encombrée. Qu'en pensez vous ?

(https://scontent-mrs2-1.xx.fbcdn.net/v/t1.0-9/82465908_2760629270718714_5739930255859122176_o.jpg?_nc_cat=100&_nc_ohc=GnR2UwiaAB0AX-3syM6&_nc_ht=scontent-mrs2-1.xx&oh=7930554f6816d6e629d9dbbbbbdaecbf&oe=5EDB45A4)

Peut-on l'optimiser ?
Title: Re: Latence Servo moteur
Post by: Apex142 on Jan 20, 2020, 06:41 pm
Je crois que c'est normal si tu fais plusieurs calculs en même temps, tes calculs prennent surement trop de temps à s'exécuter (ton programme est occupé par une tâche), tu es sur 1 thread, donc je pense que tu devras passer sur du multithreading.

J'ai eu souvent le même problème dans mes projets.
Title: Bluetooth via Arduino
Post by: nico__ninit on Jan 21, 2020, 11:33 am
Bonjour tout le monde !!

Dans le but de faire communiquer deux Arduino via mon téléphone, via bluetooth. Je crée une application via mitappinventor2. Je vous met mon programme que j'ai mis dans mes deux Arduino et une capture d'écran de mes blocs de mit app inventor. Malheureusemetn cela ne marche pas, si quelqu'un pourrais m'aidez ce serais vraiment bien !!!

voici mon programme :

#include <SoftwareSerial.h>


SoftwareSerial bluetooth (2,1); // demarer la comunication serie; bien mettre 2,1 pour que ca communique bien
// peu être que je doit crée un deuxième "variable" Buetooth
char c;

void setup() {
  bluetooth.begin(9600);// definition de la vitesse de la liaison Bluetooth
  Serial.begin (9600);// definition de la vitesse de communication serie
  Serial.println("Pret");
 

}

void loop() {
  if (bluetooth.available()>=(1)){// si le Bluetooth recois qqch alors ...
    c=bluetooth.read();
    Serial.println(c);
    bluetooth.print(10);  // bizzad, bonne commande pour l'envoie de bluetooth mias au final pas de reception ....
    delay(1000);
  }
  else {
    Serial.println ("pas de reception"); // sinon afficher pas de reception, il affiche bel et bien pas de reception lors de sa connection
    delay (1000);
  }

}
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: Yissou67 on Jan 21, 2020, 01:01 pm
non non continuez de parler ca m'interesse vraiment.

"Autant apprendre à le trouver dès l'école, non ?"
j'ai pas le temps en cours de comprendre un programme de 100 lignes qui est deja sensé etre prêt a être utilisé en 15 min puis avancé sur mon TP noté en même temps
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: J-M-L on Jan 21, 2020, 01:05 pm
En cours non - mais après les cours...
Title: Re: Bluetooth via Arduino
Post by: hbachetti on Jan 21, 2020, 02:59 pm
Code: [Select]

SoftwareSerial bluetooth (2,1); // demarer la comunication serie; bien mettre 2,1 pour que ca communique bien


Pourquoi un SoftwareSerial sur 1 ?
0 et 1 sont des pins HardwareSerial.
Title: Re: Latence Servo moteur
Post by: hbachetti on Jan 21, 2020, 03:04 pm

84% de FLASH occupée : OK (cela peut même monter à 100% sans problème).

71% de RAM occupée ne semble pas dangereux à priori, mais tout dépend de la quantité de variables locales tu utilises, et de l'empilement des appels de fonctions sur la pile.
Sans voir le code, difficile à dire.

Quote
Mon problème : Lorsque je lance le programme, mes moteurs ont 2 ont une latence. Et quand je retire le BMP180, mes servos deviennent dynamique.
Au démarrage, le bootloader s'exécute et cela prend du temps.
Pas compris le deuxième problème.
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: bidouilleelec on Jan 21, 2020, 03:14 pm
Bonjour J-M-L

En cours non - mais après les cours...
QUOI ???????????
TRAVAILLER en dehors des cours ???????????
TUEUR D'ENFANTS !!!!!!!!!!!
-10
>:(

Cordialement,
bidouilleelec
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: biggil on Jan 21, 2020, 04:22 pm
j'ai pas le temps en cours de comprendre un programme de 100 lignes qui est deja sensé etre prêt a être utilisé en 15 min puis avancé sur mon TP noté en même temps
Exactement.
C'est le genre de situation que tu vas retrouver encore et encore dans toute ta vie (et pas que professionnelle).
Ce n'est pas juste. Mais c'est comme ça. La vie n'est pas juste.
Les dés sont pipés : tu ne pourras pas avoir 20/20. Mais le problème étant le même pour tous, ce que tu peux essayer de faire c'est d'avoir une meilleure note que les autres.
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: Yissou67 on Jan 22, 2020, 10:21 am
Je ne travaillerai pas plus pour de l'arduino chez moi, ce n'est pas ce qui m'intéresse et je n'en ai pas besoin.
 encore moins pour un programme qui a été modifié par des élèves avant moi et qui du coup m'empeche de travailler, et comme les profs en ont rien a foutre et qu'ils sont pas capable de m'aider non plus, et ils me comptabilisent quand même l'exo
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: J-M-L on Jan 22, 2020, 11:04 am
Et donc vous pensez qu'on va bosser pour vous alors que vous en avez rien à faire ?

Désolé mais ce sera sans moi
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: Yissou67 on Jan 22, 2020, 12:19 pm
on m'a déjà aidé et repondu a ma question je remercie encore ce qui m'on aidé et au rythme de travaille de notre groupe, tout devrait bien se passer pour notre bac
Title: Re: comment orienté un laser dans toute les directions d'une pièce ?
Post by: 68tjs on Jan 22, 2020, 12:22 pm
Fantastique réponse.

Après avoir été insultés les profs, qui n'en ont rien à foutre mais qui lisent ce forum, se pourlèchent les babines en pensant à la note qu'ils vont te mettre à l'écrit et à l'oral musclé qu'ils te préparent.

Mais bon c'est vrai que coté intelligence  nous vérifions une fois de plus qu'il y en a qui sont moins bien dotés que d'autres.
Title: Projet terminal motoréducteur avec codeur incrémental
Post by: teol on Jan 23, 2020, 10:14 am
Bonjour,
Je suis en terminal SIN et pour mon projet je dois réaliser un programme qui permet d'orienter une tourelle (motoréducteur avec codeur incrémental) vers un des 4 murs de la pièce.
Je sais pas du tout comment m'y prendre. Je suis très mauvais en programmation. Pourriez-vous m'aider s'il vous plait ?
Title: Re: Bluetooth via Arduino
Post by: nico__ninit on Jan 23, 2020, 10:53 am
bonjour,
le pin 0 ne marche carte mais en communication simple( téléphone a Arduino), en mettant sur d'autre pin que 1 et 2 la communication se fait sans aucun problème
Title: Re: Projet terminal motoréducteur avec codeur incrémental
Post by: J4l13n on Jan 23, 2020, 11:04 am
Bonjour

Il faudrait commander le moteur avec un pont en H (https://openclassrooms.com/fr/courses/2778161-programmez-vos-premiers-montages-avec-arduino/3285355-le-moteur-a-courant-continu-partie-2-le-pont-en-h-et-les-circuits-integres) (si il est compatible) et controler son avancement avec l'encodeurs  (https://www.robot-maker.com/shop/blog/32_Utilisation-des-encodeurs.html) jusqu'a une valeur cible.

Title: Re: Bluetooth via Arduino
Post by: hbachetti on Jan 23, 2020, 11:49 am
Je voulais dire : 0 et 1 sont à éviter car déjà pris par le Serial (chargement, terminal).
Title: Re: Projet terminal motoréducteur avec codeur incrémental
Post by: teol on Jan 23, 2020, 12:57 pm
comment ça ? Comment faire un programme qui puisse le faire fonctionner?
Title: Re: Projet terminal motoréducteur avec codeur incrémental
Post by: J-M-L on Jan 23, 2020, 05:36 pm
comment ça ? Comment faire un programme qui puisse le faire fonctionner?
Ça ressemble à un autre post d'un autre je-m-en-foutiste qui ne voulez pas bosser mais qui devait pointer des murs... contactez le ....
Title: Re: Latence Servo moteur
Post by: Wizeep on Jan 23, 2020, 10:20 pm
up
Title: Re: Latence Servo moteur
Post by: hbachetti on Jan 23, 2020, 11:15 pm
Quote
Mon problème : Lorsque je lance le programme, mes moteurs ont 2 ont une latence. Et quand je retire le BMP180, mes servos deviennent dynamique.
Cela manque franchement de clarté.
Je ne vois même pas ce que veut dire : un servo qui devient dynamique.
Et puis à quoi cela rime t-il de retirer le BMP180 ?
Tout ce que je peux te suggérer est d'ajouter à ton sketch des traces vers la console, en horodatant chaque ligne.
Tu n'as même par pris la peine d'ouvrir le port série : Serial.begin()
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: Yissou67 on Jan 24, 2020, 02:25 pm
pourquoi mon forum a été remplacer par celui la ?
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: Artouste on Jan 24, 2020, 02:45 pm
pourquoi mon forum a été remplacer par celui la ?
bonjour
:smiley-mr-green:

[Hum²)
AMHA 2 grosses options  possibles  :
- La 1ére : les modo sont des dictateurs dans l'âme  et la réponse est simplement "parce que" 8)

- La seconde  , que je pense là beaucoup être là, la  plus probable  :D, tu n'a pas pris la précaution initiale de bien lire  (MSG en tête  de ce sous forum) ce qui est demandé pour espérer obtenir des réponses ... utiles ;)
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: jfs on Jan 24, 2020, 06:09 pm
pourquoi mon forum a été remplacer par celui la ?
- La 1ére : les modo sont des dictateurs dans l'âme  et la réponse est simplement "parce que" 8)
:D  C'est effectivement une bonne raison, mais....


Je ne travaillerai pas plus pour de l'arduino chez moi, ce n'est pas ce qui m'intéresse et je n'en ai pas besoin.
 encore moins pour un programme qui a été modifié par des élèves avant moi et qui du coup m'empeche de travailler, et comme les profs en ont rien a foutre et qu'ils sont pas capable de m'aider non plus, et ils me comptabilisent quand même l'exo
Tout est dit.... tu n'a pas besoins de continuer à venir sur le forum...
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: Yissou67 on Jan 24, 2020, 07:04 pm
excuse moi d'avoir penser a voix haute. a l'avenir je continuerai a faire semblant
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: 68tjs on Jan 24, 2020, 07:10 pm
A l'avenir essaye d'être cohérant : tu ne peux pas dire simultanément "je n'en ai rien à foutre d'arduino" et "aidez moi pour mon bac" --> ce qui revient à dire "aidez moi à frauder ".
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: J-M-L on Jan 25, 2020, 09:00 am
excuse moi d'avoir penser a voix haute. a l'avenir je continuerai a faire semblant
On n'aurait pas codé pour vous ici, on aurait juste accompagné VOTRE boulot. Donc ne croyez pas que être cash vous a privé de réponses... Surtout ayez le courage de vos opinions. Ça ne vous intéresse pas de bosser cette matière à vous d'en assumer les conséquences
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: Yissou67 on Jan 25, 2020, 09:02 pm
c'est l'inverse, je boss meme si ca m'intéresse pas trop (ca va pas dire que ca m'interesse pas a 0%) donc y'a pas de raison de m'avoir sanctionner dans mon forum. je suis investi pour avoir mon bac.
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: jfs on Jan 25, 2020, 09:05 pm
Je te laisse aller relire la charte du forum, et lorsque tu l'auras fait et assimilé ce qui y est écrit, tu pourras réouvrir un sujet dans la bonne rubrique.
Title: Fusionner deux programmes: capteur d'obstacles + mesurer intensité
Post by: Adipoul on Jan 31, 2020, 08:40 am
bonjour,

j'ai deux programmes: un qui détecte les obstacles avec un capteur infrarouge sharp et un autre qui doit mesurer l'intensité du son avec un micro omnidirectionnel.
J'aimerais rajouter une tâche qui permettrait au robot de s'orienter vers l'intensité la plus forte. De plus, il faudrait que tous ces programmes fonctionnent sur une meme carte...

Merci de votre aide! (ce sont pour nos projets de Terminale SSi :smiley-confuse: )





























































Title: Re: Fusionner deux programmes: capteur d'obstacles + mesurer intensité
Post by: Adipoul on Jan 31, 2020, 09:07 am
#include <SharpDistSensor.h>

// Analog pin to which the sensor is connected
const byte sensorPin = A0;

// Window size of the median filter (odd number, 1 = no filtering)
const byte medianFilterWindowSize = 5;

// Create an object instance of the SharpDistSensor class
SharpDistSensor sensor(sensorPin, medianFilterWindowSize);
const int analogPin = A5;
int delta = 0;

void setup() {
  Serial.begin(9600);
  Serial.begin(9600);

}

void loop() {
   // Get distance from sensor
  unsigned int distance = sensor.getDist();

  // Print distance to Serial
  Serial.println(distance);



  // Wait some time
  delay(50);

 
int mn = 700;
int mx = 800;

// On effectue 500 mesures en updatant à chaque fois le min et le max
for (int i = 0; i < 500; ++i) {
int val = analogRead(analogPin);
mn = min(mn, val);
mx = max(mx, val);
}
// Envoi les valeurs min, max et delta sur le port série
Serial.print("Min=");
Serial.print(mn);
Serial.print(" Max=");
Serial.print(mx);
Serial.print(" D=");
Serial.print(mx-mn);
Serial.println();

delta = map(mx-mn, 0, 400, 0, 255);
Serial.println(delta);


}
Title: Re: Fusionner deux programmes: capteur d'obstacles + mesurer intensité
Post by: fdufnews on Jan 31, 2020, 09:15 am
Si le micro est omnidirectionnel, il capte les sons dans TOUTES les directions donc tu auras beaucoup de mal à trouver la direction de l'intensité la plus forte.

Je t'engage aussi à lire les post épinglés à la racine du forum français concernant les règles de rédaction des post si tu veux que ton fil de discussion ait une durée de vie suffisante pour obtenir des réponses.
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: jfs on Feb 02, 2020, 04:31 pm
Je t'engage aussi à lire les post épinglés à la racine du forum français concernant les règles de rédaction des post si tu veux que ton fil de discussion ait une durée de vie suffisante pour obtenir des réponses.
Trop tard..... c'est déjà dans la poubelle depuis plusieurs jours  :smiley-mr-green:
Title: UTILISATION SD AVEC UN SHIELD TFT 2.8" ET LA MEGA.
Post by: Myke on Feb 05, 2020, 07:08 pm
Bonjour a Tous...

Voila j'ai acquis un Shield Tactile 2.8"...Je l'ai emboîté sur la 'MEGA'. Côté Ecran/tactile No Soucy....Par contre pour utiliser la SD  ---> BIG PROBLEME !!!...En fait les connexions de la SD sur le 'SHIELD TFT' correspondent a PWM 10 a 13 Sur la 'MEGA'.
Le mode SPI MEGA est normalement dévolu aux pins 50 a 53 qui fonctionne avec le 'Hard Soft' SPI.
Conclusion: la seule façon de pouvoir faire fonctionner la SD en laissant le 'Shield TFT' emboîté est de Simuler une communication SPI par un soft avec les broches PWM 10 a 13 de la MEGA.

PBLM: Apres avoir consulté je ne sais combien d'articles,et perdu je ne sais combien d'heures a tester pas mal de programmes et modifier les fichiers .h ou .cpp qui traitaient de ce problême (en suivant scrupuleusement les soit disant "infos fournies" ,je suis toujours au même point concernant la SD.
Plutôt que d'écrire il faut 'faire ceci' ou 'faire cela' dans tel ou tel fichier (Mdr !!!) Quelqu'un aurait il la bonne idée de mettre a disposition le programme 'SOFT SPI' nécessaire a la MEGA ???...(Si possible accompagné des bons fichiers .h et .cpp relatifs au programme en question...)...Bof sinon je retournerai a la programmation de mes PICs en Assembleur... :)  :) bien plus facile avec des debbuger dignes de ce nom...(Pas comme l'IDE Arduino...Lol !!!)...
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: jfs on Feb 05, 2020, 07:52 pm
Va lire ou relire la charte du forum avant de refaire un topic et de te retrouver à nouveau dans la poubelle....
Title: Envoyer un message automatique avec module HC05
Post by: ryskyp on Feb 10, 2020, 05:14 pm
 Bonjour/Bonsoir, je suis actuellement en projet de terminale S et je débute sur arduino. Jai réussi a appairer ma carte arduino UNO avec mon téléphone via le grace au code ci joint:
---------------------------------------------------------------------------------------------
#include <SoftwareSerial.h>

SoftwareSerial BTSerial(10, 11); // RX | TX

void setup()
{
pinMode(9, OUTPUT);  // this pin will pull the HC-05 pin 34 (key pin) HIGH to switch module to AT mode
digitalWrite(9, HIGH);
Serial.begin(9600);
Serial.println("Enter AT commands:");
BTSerial.begin(38400);  // HC-05 default speed in AT command more
}

void loop()
{

// Keep reading from HC-05 and send to Arduino Serial Monitor
if (BTSerial.available())
  Serial.write(BTSerial.read());

// Keep reading from Arduino Serial Monitor and send to HC-05
if (Serial.available())
  BTSerial.write(Serial.read());
}
---------------------------------------------------------------------------------------------------
Je souhaite maintenant faire en sorte que lorsque qu'une condition ai lieu et bien que la carte envoit via le module bluetooth un message précis (ici: "il est l'heure de prendre vos médicaments").
Je viens demander votre aide car je nai pas du tout trouvé de réponses à mes questions.
Quels termes faut il utiliser ?

Merci par avance de vos réponses.
Title: Re: Envoyer un message automatique avec module HC05
Post by: jfs on Feb 10, 2020, 08:32 pm
première chose à faire :

lire tous les messages épinglés en haut de page.....


Deuxième chose :

éditer le premier message et faire les modifications en conséquences de nº1


Sinon >>> poubelle


Tic tac

Tic tac
Title: Re: Envoyer un message automatique avec module HC05
Post by: ryskyp on Feb 10, 2020, 10:19 pm
J'ai lus mais deso je n'arrive pas à le supprimer
Title: projet pfe
Post by: GUESMI_O on Feb 18, 2020, 02:23 pm
Comment je dois configurer la carte mega2560 pour la lecture d'un capteur dht22
Title: Re: projet pfe
Post by: al1fch on Feb 18, 2020, 02:35 pm
BONJOUR

....Comme indiqué dans les très, très nombreux tutoriels concernant ce composant très courant
Title: arduino sim le quelle choisir ??
Post by: vgdtrseer on Feb 18, 2020, 03:33 pm
Bonjour,
Je souhaiterai savoir quelle module sim pour Arduino uno r3 serai le plus simple  utiliser et pas trop cher.
PS je suis un débutant
Title: Re: arduino sim le quelle choisir ??
Post by: hbachetti on Feb 18, 2020, 04:08 pm
On suppose que tu veux parler d'un modem GSM / GPRS ou non ?
2G 3G 4G ?
Title: Re: projet pfe
Post by: lesept on Feb 18, 2020, 04:41 pm
Tout est décrit ici (https://lmgtfy.com/?q=arduino+mega+dht22)  :)
Title: Besoin d'aide pour un projet
Post by: Kumkwat on Feb 18, 2020, 05:32 pm
Bonjour bonjour

Alors je suis nulle comme pas possible en codage, et j'aurai besoin d'aide pour un projet qui compte pour mon bac woohoo!


On doit faire un distributeur automatique de nourriture pour chats et j'ai plusieurs plusieurs paramètres à prendre en compte (il y aura 5 UIDs - correspondant aux 5 chats - en mémoire):
      - Quel chat se présente devant l'appareil (parce qu'on utilise de la RFID pour déterminer si le chat qui est là appartient bien au propriétaire, sauf qu'on aura besoin de savoir précisément de quel chat il s'agit pour lui attribuer les bons paramètres)
      - L'heure à laquelle le chat a prit son dernier repas
      - Le nombre de repas qu'il a déjà eu (l'utilisateur pourra paramétrer un nombre de repas maximum entre 1 et 3)
      - L'intervalle entre deux repas doit être de 6h minimum (on utilise une RTC)


J'ai découpé le programme en plusieurs parties:
   1) Créer des tableaux pour attribuer aux chats leur UIDs (je sais pas si c'est nécessaire mais je vois pas comment faire pour la suite), la dernière heure à laquelle ils ont mangés et le nombre de repas qu'ils ont déjà prit.
   2) Faire un bout de programme pour enregistrer les UID en EEPROM
   3) Faire un bout de programme pour vérifier que l'UID détecté est enregistré et pouvoir passer à la suite.
   4) Faire un bout de programme pour savoir exactement de quel chat il s'agit, afin de vérifier quand est-ce qu'il a mangé pour la dernière fois et combien de repas il a prit.
   5) Interroger la RTC afin de savoir quelle heure il est maintenant et s'il y a bien 6h de différence entre les repas (sachant que tous les paramètres se réinitialise au bout d'une journée, donc faudrait mettre l'heure en seconde?)

Et ce sera déjà franchement pas mal.


Y a un de mes profs qui a fait un ENORME programme qui traite de RFID et qui permet déjà d'enregistrer des UID et de faire d'autres trucs, sauf que je le comprends pas - j'ai essayé je vous jure - et donc j'ai du mal à l'utiliser et à sélectionner les morceaux qui m'intéressent. Je vous le met en pièce jointe, bon courage.


Donc ma question c'est: Est-ce que quelqu'un serait disposé à m'aider pour, dans un premier temps, décortiquer ce programme et sélectionner les morceaux utiles pour les points 1) et 2) ?

Merci énormément à ceux qui prendront de leur temps pour lire tout ça et aider une parfaite newbie. Passez une excellente journée/soirée! :D
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: jfs on Feb 18, 2020, 09:01 pm
Là va falloir reposer ta question dans la bonne section.... tu es actuellement dans la poubelle.

Oublie pas dans l'intervalle d'aller relire la charte et le réglement de la partie francophone du forum, tu comprendras ainsi pourquoi ton message est parti à la poubelle.
Title: Re: projet pfe
Post by: 68tjs on Feb 19, 2020, 02:11 am
Ni bonjour, ni merci
Il ne faut pas espérer plus de réponses
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: Kumkwat on Feb 19, 2020, 08:29 pm
Ok je relirai bien les règles et je le reposterai au bon endroit, merci!
Title: Re: arduino sim le quelle choisir ??
Post by: Bricotibo on Feb 20, 2020, 09:28 am
oui c'est ca
Title: Re: arduino sim le quelle choisir ??
Post by: hbachetti on Feb 20, 2020, 11:51 am
En général quand on pose deux questions on attend deux réponses  :smiley-confuse:
Title: Re: arduino sim le quelle choisir ??
Post by: al1fch on Feb 20, 2020, 12:25 pm
Ou alors c'est 'oui' aux deux questions et la carte recherchée doit  faire 2G, 3G et 4G ......
Title: Re: arduino sim le quelle choisir ??
Post by: hbachetti on Feb 20, 2020, 12:34 pm
Je n'y avais pas pensé ...  :smiley-confuse:

2G, 3G et 4G et pas cher ...
Title: Re: arduino sim le quelle choisir ??
Post by: J4l13n on Feb 20, 2020, 01:40 pm
http://forum.arduino.cc/index.php?topic=665725.0 (http://forum.arduino.cc/index.php?topic=665725.0)

Quote
Avant  j'étais bipolaire mais maintenant nous nous soignons
@+
Title: Simplifier programme
Post by: Runshall1 on Feb 21, 2020, 02:10 pm
Bonjour, je voudrais simplifier un programme que j'ai effectuer qui est beaucoup trop long.

int T = 1000;
int TimeA = (100 * T) / 2700;
int TimeB = (250 * T) / 2700;



void setup() {

  pinMode(0, OUTPUT);
  pinMode(1, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);

}


void loop(){
    digitalWrite(0, HIGH);
    delay(TimeA);
    digitalWrite(0, LOW);
    digitalWrite(1, HIGH);
    delay(TimeA);
    digitalWrite(1, LOW);
    digitalWrite(2, HIGH);
    delay(TimeA);
    digitalWrite(2, LOW);
    digitalWrite(3, HIGH);
    delay(TimeA);
    digitalWrite(3, LOW);
    digitalWrite(4, HIGH);
    delay(TimeA);
    digitalWrite(4, LOW);
    digitalWrite(5, HIGH);
    delay(TimeA);
    digitalWrite(5, LOW);
    digitalWrite(4, HIGH);
    delay(TimeA);
    digitalWrite(4, LOW);
    digitalWrite(3, HIGH);
    delay(TimeA);
    digitalWrite(3, LOW);
    digitalWrite(2, HIGH);
    delay(TimeA);
    digitalWrite(2, LOW);
    digitalWrite(1, HIGH);
    delay(TimeA);
    digitalWrite(1, LOW);
    digitalWrite(0, HIGH);
    delay(TimeA);
    digitalWrite(0, LOW);
    delay(TimeA);
    digitalWrite(0, HIGH);
    digitalWrite(1, HIGH);
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
    digitalWrite(5, HIGH);
    delay(TimeB);
    digitalWrite(0, LOW);
    digitalWrite(1, LOW);
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
    delay(TimeB);
    digitalWrite(0, HIGH);
    digitalWrite(1, HIGH);
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
    digitalWrite(5, HIGH);
    delay(TimeB);
    digitalWrite(0, LOW);
    digitalWrite(1, LOW);
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
    delay(TimeB);
    digitalWrite(0, HIGH);
    digitalWrite(1, HIGH);
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
    digitalWrite(5, HIGH);
    delay(TimeB);
    digitalWrite(0, LOW);
    digitalWrite(1, LOW);
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
    delay(TimeB);
    digitalWrite(0, HIGH);
    digitalWrite(1, HIGH);
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
    digitalWrite(5, HIGH);
    delay(250);

        T = T + 250;
    T <= 5000;
    if (T=5000)
    {
      T=1000;
    }


  }

Merci
Title: Comment faire marcher un module bluetooth pour mBot avec une Arduino Uno
Post by: Toto_38 on Feb 22, 2020, 07:24 pm
Bonjour,
Je n'arrive pas a faire marcher mon module bluetooth mBot sur ma carte Arduino Uno.Je ne connais pas bien le langage c et j'aimerais savoir comment programmer l'arduino de façon a l'utiliser avec des applications mobiles
J'ai branché TX sur TX
                      RX sur RX
                      GND sur GND
             Et 5V sur VCC
Il reste RST,NC et DTR qui ne sont pas relier a l'arduino
Title: Re: Comment faire marcher un module bluetooth pour mBot avec une Arduino Uno
Post by: 68tjs on Feb 22, 2020, 08:07 pm
As tu lu le titre du sous forum dans lequel tu as posté ?

As tu lu les messages épinglés, notamment celui où on trouve cette image :
(http://psl.ibidouille.net/Images_forum/NouSuj.png)

Alors fais ce qu'il faut pour ne pas te retrouver dans la poubelle.

Indice : il y a un lien "Report to moderator" qui peut être utile pour faire déplacer les messages.
Title: Re: Comment faire marcher un module bluetooth pour mBot avec une Arduino Uno
Post by: Toto_38 on Feb 22, 2020, 08:37 pm
Ok merci
Title: Re: Comment faire marcher un module bluetooth pour mBot avec une Arduino Uno
Post by: Arzou on Feb 22, 2020, 09:29 pm
Bonjour,
Je n'arrive pas a faire marcher mon module bluetooth mBot sur ma carte Arduino Uno.Je ne connais pas bien le langage c et j'aimerais savoir comment programmer l'arduino de façon a l'utiliser avec des applications mobiles
J'ai branché TX sur TX
                      RX sur RX
                      GND sur GND
             Et 5V sur VCC
Il reste RST,NC et DTR qui ne sont pas relier a l'arduino
En attendant de deplacer ton post,
Tx va sur rx
Et rx va sur tx,
Il faut les croiser
Title: Re: Comment faire marcher un module bluetooth pour mBot avec une Arduino Uno
Post by: 68tjs on Feb 23, 2020, 12:38 am
La règle est de ne pas répondre tant que le post n'est pas déplacé.
Sinon l'usage a montré que certains demandeurs ayant reçu une réponse s'en allait en laissant leur foutoir.

Je ne fais pas un procès d'intention, je ne connais pas Toto_38, je fais juste un rappel de ce que l'on a constaté.
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: Arzou on Feb 24, 2020, 10:10 am
La règle est de ne pas répondre tant que le post n'est pas déplacé.
Sinon l'usage a montré que certains demandeurs ayant reçu une réponse s'en allait en laissant leur foutoir.

Je ne fais pas un procès d'intention, je ne connais pas Toto_38, je fais juste un rappel de ce que l'on a constaté.
Oupps, pardon...
Title: Débutant robot 2 roues avec capteur ultrason et pont en h
Post by: Turpin2019 on Feb 25, 2020, 02:16 pm
Bonjour à tous,

j'ai chargé mon code mais j'ai un soucis en lignes 5 Je pense a la bibliothèque mais pas sur.


#define ECHO_PIN A1 // le Pin A1, sortie analogique

Je vous joins mon code et merci pour votre aide

Bonne journée

code:
#include <Servo.h>  // On inclut les bibliothèques du servo-moteur, du capteur ultrason
#include <HCSR04.h>
// define fait une sorte de copier coller
// Attribuer  les Pins du servo-moteur HCSR04.h

#define TRIG_PIN A0 // le Pin A0, sortie analogique
#define ECHO_PIN A1 // le Pin A1, sortie analogique

// Définissez toutes les cartes de connexion au L298N

#define enA 13
#define in1 12
#define in2 11
#define in3 7
#define in4 6
#define enB 5
#define servoPin 2

class Motor{

int enablePin;
int directionPin1;
int directionPin2;

public:

//définir les broches des moteurs  

Motor(int ENPin,int dPin1,int dPin2){
enablePin = ENPin;
directionPin1 = dPin1;
directionPin2 = dPin2;
};

// Méthode pour faire avancer le moteur de 0 à 255. -1 ~ -255 pour reculer

void Drive(int speed){
if(speed>=0){
digitalWrite(directionPin1, LOW);
digitalWrite(directionPin2, HIGH);
}
else{
digitalWrite(directionPin1, HIGH);
digitalWrite(directionPin2, LOW);
speed = - speed;
}
analogWrite(enablePin, speed);
}
};

Motor leftMotor = Motor(enA, in1, in2);
Motor rightMotor = Motor(enB, in3, in4);
Servo myservo; // create servo object to control a servo

void motorInitiation(){
pinMode(enA, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);

// Définir la direction et la vitesse initiale


digitalWrite(enA, LOW);
digitalWrite(enB, LOW);
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
}

//Variables--------------------------------------------------------------------------
// Anything over 400 cm (23200 us pulse) is "out of range"
// Tout ce qui dépasse 400 cm (impulsion 23200 us) est "hors de portée

const unsigned int MAX_DIST = 23200;
bool ObsticalAhead = false;
int servoPos = 90;

enum Directions { Forward, TurnLeft, TurnRight, TurnAround,Brake};

Directions nextStep = Forward;

unsigned long t1;
unsigned long t2;
unsigned long pulse_width;
float cm;
float inches;

//SETUP--------------------------------------------------------------------------
void setup() {

// The Trigger pin will tell the sensor to range find
pinMode(TRIG_PIN, OUTPUT);
digitalWrite(TRIG_PIN, LOW);

// Nous utiliserons le moniteur série pour visualiser la sortie du capteur
Serial.begin(9600);
myservo.attach(servoPin);
motorInitiation();
Directions nextStep = Forward;
}

void loop() {

checkDistance();
checkDirection();
drive();
}

void checkDistance(){

// Hold the trigger pin high for at least 10 us
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);

// Attendre l'impulsion sur le Pin d'écho

while ( digitalRead(ECHO_PIN) == 0 );

// Mesurer combien de temps le Pin d'écho a été maintenue haute (largeur d'impulsion)
// Remarque: le compteur micros () débordera après ~ 70 min

t1 = micros();
while ( digitalRead(ECHO_PIN) == 1);
t2 = micros();
pulse_width = t2 - t1;

// Calculate distance in centimeters and inches. The constants
// are found in the datasheet, and calculated from the assumed speed
//of sound in air at sea level (~340 m/s).
cm = pulse_width / 58.0;
inches = pulse_width / 148.0;

// Imprimer les résultats
if ( pulse_width > MAX_DIST ) {
//Serial.println("Out of range");
} else {
//Serial.print(cm);
//Serial.print(" cm \t");
//Serial.print(inches);
//Serial.println(" in");
}
// Attendez au moins 60 ms avant la prochaine mesure
delay(60);

if(cm<= 20){
ObsticalAhead = true;
Serial.println("Problem Ahead");

}
else{ ObsticalAhead = false;}

}
void checkDirection(){
Serial.println("checking direction");
if(ObsticalAhead ==true){
nextStep = Brake;
drive();
myservo.write(180); // dire au servo- moteur d'aller à la position dans la variable 'pos'

delay(400); // attend 15 ms pour que le servo -moteur atteigne la position

checkDistance();
if(ObsticalAhead ==false){  // si le côté gauche est ouvert

nextStep = TurnLeft;
Serial.println("Next step is TurnLeft");
myservo.write(90); // réinitialiser la position du servo

delay(400);
}
else{ // la gauche est bloquée, il faut maintenant regarder à droite

myservo.write(0); // dire au servo-moteur d'aller à la position dans la variable 'pos

delay(800); // attend 15 ms pour que le servo-moteur atteigne la position

checkDistance();
if(ObsticalAhead ==false){ // si le côté droit est ouvert

nextStep = TurnRight;
Serial.println("Next step is TurnRight");
myservo.write(90); // réinitialiser la position du servo-moteur

delay(400);
}
else{ // la droite est également bloquée, il faut faire demi-tour

nextStep = TurnAround;
myservo.write(90);//reset servo position
delay(300);
Serial.println("Next step is TurnAround");
}
}

}
else{nextStep = Forward;} // Pas d'obstacle à venir

}

void drive(){
switch (nextStep){
case Forward:
leftMotor.Drive(255);
rightMotor.Drive(255);
Serial.println("Forward");

break;
case TurnLeft:
leftMotor.Drive(-255);
rightMotor.Drive(255);
Serial.println(" TurnLeft");
delay(400);

break;
case TurnRight:
leftMotor.Drive(255);
rightMotor.Drive(-255);
Serial.println(" TurnRight");
delay(400);
break;
case TurnAround:
leftMotor.Drive(255);
rightMotor.Drive(-255);
Serial.println(" TurnAround");
delay(600);
break;

case Brake:
leftMotor.Drive(0);
rightMotor.Drive(0);
Serial.println(" stopped");
}

}
Title: Re: Débutant robot 2 roues avec capteur ultrason et pont en h
Post by: hbachetti on Feb 25, 2020, 03:10 pm
Tu as deux problèmes :

Cette rubrique est réservée aux "Réalisations et Projets Finis".
STP utilise le bouton "Report to moderator" pour demander au modo de déplacer ton message dans le forum principal.

Ton code est à placer entre balises code :
https://forum.arduino.cc/index.php?topic=315372.0 (https://forum.arduino.cc/index.php?topic=315372.0)

Quote
j'ai chargé mon code mais j'ai un soucis en lignes 5 Je pense a la bibliothèque mais pas sur.
Accessoirement tu pourrais préciser de quel "soucis" il s'agit (message d'erreur, etc.)
Title: Probleme programmation (débutant)
Post by: Turpin2019 on Feb 25, 2020, 10:39 pm
Bonjour  à tous

je débute la programmation Arduino. J'ai un programme et je bute sur une bibliothèque je pense .


IDE bloque à:  define ECHO_PIN A1


Pouvez vous aider ?

merci à l'avance :

Michel


#include <Servo.h>  // On inclut les bibliothèques du servo-moteur, du capteur ultrason
#include <HCSR04.h>
// define fait une sorte de copier coller
// Attribuer  les Pins du servo-moteur HCSR04.h

#define TRIG_PIN A0 // le Pin A0, sortie analogique

#define ECHO_PIN A1 // le Pin A1, sortie analogique



Title: Re: Probleme programmation (débutant)
Post by: J-M-L on Feb 25, 2020, 10:51 pm
lisez comment utiliser le forum (les posts épinglés en haut du forum comme "Bien éditer son post pour les nuls (http://forum.arduino.cc/index.php?topic=394754.0)" , "Faire un Nouveau Sujet ou le corriger avec les Balises... (http://forum.arduino.cc/index.php?topic=315372.0)" et "Règles du forum francophone (http://forum.arduino.cc/index.php?topic=546956.0)"), et faites un post "propre" avec toutes les informations et le code directement dans le post avec les balises de code + postez exactement l'erreur donnée par le compilateur (en texte, pas en image)

ce sera plus facile à lire depuis un smartphone


Title: Re: Probleme programmation (débutant)
Post by: lesept on Feb 25, 2020, 11:32 pm
Quel modèle d'arduino ?
Title: Probleme error robot avec capteur ultrason
Post by: Turpin2019 on Feb 26, 2020, 09:33 am
Bonjour à tous

j'utilise une carte Arduino Uno et j'ai un programme robot two whell servo and sensor ultrason

message error A1 was not declared in this scope


#include <Servo.h>  // On inclut les bibliothèques du servo-moteur, du capteur ultrason
#include <HCSR04.h>
// define fait une sorte de copier coller
// Attribuer  les Pins du servo-moteur HCSR04.h

#define TRIG_PIN A0 // le Pin A0, sortie analogique
#define ECHO_PIN A1 // le Pin A1, sortie analogique

// Définissez toutes les cartes de connexion au L298N



je joins mon fichier .Pouvez vous m'aider?

merci
Title: Re: Débutant robot 2 roues avec capteur ultrason et pont en h
Post by: lesept on Feb 26, 2020, 09:55 am
Chez moi, le code que tu as posté dans ton premier message compile sans erreur pour un UNO.
Quelle version de l'IDE utilises-tu ? Qu'as-tu sélectionné dans Outils > Programmateur ?
Title: aide programmation
Post by: livai on Mar 03, 2020, 04:50 pm
Bonjour,

je dois réaliser un projet or étant tout nouveau dans ce domaine de la programmation et de l'arduino, je n'ai aucune base.

Mon projet consiste en un piège à souris.

Comme matériel j'ai:

-3 servomoteurs
-1 capteur de mouvement
-1 capteur de température
-1 capteur de pression de charge

J'ai réussi à faire fonctionner mon servomoteur avec un programme de base or je ne sais pas comment le faire fonctionner en fonction de mon capteur de mouvement, c'est à dire que je veux que le servomoteur s'enclenche en fonction que le capteur de mouvement détecte un mouvement.

Ainsi, le servomoteur servira à ouvrir une porte si il détecte une souris.

Merci de m'aider je suis débutant..
Title: Re: aide programmation
Post by: J-M-L on Mar 03, 2020, 06:07 pm
Mettez votre projet de côté pour le moment, vous y reviendrez quand vous aurez les bases nécessaires... un bon point de départ c'est de lire les tutos d'eskimon (https://eskimon.fr) et faire aussi un tuto sur le C et C++

si c'est pour l'école, lisez les "Règles du forum francophone (http://forum.arduino.cc/index.php?topic=546956.0)" et surtout la partie concernant les projets scolaires (https://forum.arduino.cc/index.php?topic=326481.0)

Nous vous aiderons si vous montrez du travail et que vous avez des questions précises, nous n'allons pas faire le  boulot à votre place.
Title: Re: aide programmation
Post by: Jambe on Mar 03, 2020, 06:12 pm
A lire ce sujet:  https://forum.arduino.cc/index.php?topic=636858.0 (https://forum.arduino.cc/index.php?topic=636858.0), vraiment tu ne te foules pas.
Title: Re: aide programmation
Post by: J-M-L on Mar 03, 2020, 06:50 pm
A lire ce sujet:  https://forum.arduino.cc/index.php?topic=636858.0 (https://forum.arduino.cc/index.php?topic=636858.0), vraiment tu ne te foules pas.
pris la main dans le sac :)

Title: Re: aide programmation
Post by: Jambe on Mar 03, 2020, 07:02 pm
Tout nouveau dans le domaine... Depuis septembre, ce n'est déjà plus du tout neuf
Title: Re: aide programmation
Post by: livai on Mar 07, 2020, 01:25 am
Haha... oui mais c'est à dire que depuis septembre nous avons fais la partie "papier" c'est à dire comment notre maquette sera réalisée avec quels mâtereaux etc mais la on commence la programmation. Je commence à comprendre le language C grâce à quelques vidéos.
Title: Re: aide programmation
Post by: livai on Mar 07, 2020, 01:32 am
Merci J-M-L ça m'aide beaucoup !
Title: Re: aide programmation
Post by: livai on Mar 07, 2020, 01:46 am
Haha... oui mais c'est à dire que depuis septembre nous avons fais la partie "papier" c'est à dire comment notre maquette sera réalisée avec quels mâtereaux etc mais la on commence la programmation. Je commence à comprendre le language C grâce à quelques vidéos.
Déplus, le projet n'est pas un cours, je suis en études scientifiques je n'ai pas que de la programmation voir pas du tout.
Title: Projet Pompe Eau
Post by: Drosnoce on Mar 13, 2020, 08:47 pm
Bonjour, je me présente je suis étudiante en terminale STI2D option SIN. Pour cette année je doit réaliser un projet je devrais à la fin de ce projet pouvoir commander à distance une pompe à eau c'est à dire de gérer la mise en route et l'arrêt de ma pompe à distance via une application GSM ainsi que recevoir un message d'alerte en cas de dysfonctionnement. Pour cela je vais utiliser une carte arduino UNO ainsi qu'un Shield Gsm bien sûr une pompe à eau etc. J'ai fait un premier schéma électrique que je met en pièce jointe je les fait sur le site fritzing je pense qu'il est bon mais pour la vue schématique je ne suis pas sûr je ne comprend pas vraiment. Vous pensez que je devrais changer quelque chose ? Je ne sais pas si je doit rajouter une diode, une résistance ou un transistor.Mon prof m'a conseillé de mettre un relais j'en ai mis un puisque ma pompe sera en 12V. Sur mon schéma les piles représente l'alimentation qui sera le générateur, on vois le shield mais en dessous il y'a la carte arduino et le moteur représente la pompe puisqu'il n'y a pas de pompe sur cette application.
Merci de votre aide  :)
Title: PROJET: Schéma électrique pompe à eau
Post by: arduinolocea on Mar 14, 2020, 11:01 am
Bonjour,
Je suis en terminal STI2D option SIN et j'ai un projet à réaliser qui est de commander à distance via une application GSM l'arrêt et la mise en route de ma pompe à eau aisni que d'envoyer des SMS en cas de dysfonctionnement.
J'ai réaliser un schéma électrique sur Fritzing et j'aimerais savoir ce que vous en pensez si il est bon ou si je doit peut-être rajouttez quelque chose par exemple un transistor une diode ou autre ??
Avez vous un autre site à me conseiller ou je pourrais réaliser ce schéma???

Je vais utiliser une carte arduino UNO ainsi qu'un Shield GSM bien sûr une pompe à eau etc. Sur mon schéma les piles représente l'alimentation qui sera le générateur, on vois le shield GSM mais en dessous se trouve la carte arduino et le moteur représente la pompe puisqu'il n'y a pas de pompe sur cette application.
J'ai également mis un relais vu que ma pompe sera en 12V

Merci de votre aide d'avance.
Title: Re: PROJET: Schéma électrique pompe à eau
Post by: J4l13n on Mar 14, 2020, 11:10 am
Pourquoi un autre pseudo  ? et un autre post ?

https://forum.arduino.cc/index.php?topic=670633.0 (https://forum.arduino.cc/index.php?topic=670633.0)
Title: Re: Projet Pompe Eau
Post by: J4l13n on Mar 14, 2020, 11:11 am
Pourquoi un autre pseudo  ? et un autre post ?

https://forum.arduino.cc/index.php?topic=670712 (https://forum.arduino.cc/index.php?topic=670712)
Title: Re: PROJET: Schéma électrique pompe à eau
Post by: al1fch on Mar 14, 2020, 11:12 am
Multiplier les demandes identiques n'est pas la meilleur manière d'avoir des réponses... ça peut tout à fait être contre-productif  en  réduisant  fortement l'envie de répondre
J'attends que les choses se normalisent pour répondre à la demande.
Title: Machine à café / Coffee machine
Post by: YHN on Mar 14, 2020, 05:15 pm
Bonjour
Je souhaite réaliser une machine à café avec l'Arduino et j'ai un soucis
J'utilise un sélecteur 12 positions (que j'ai modifié pour en avoir 3) et le principe du sélecteur est :
Le courant arrive dans le sélecteur ; le sélecteur le redistribue en fonction de son placement. Il fonctionne très bien quand je branche des leds et des resistances sans passer par l'arduino mais dès que je le branche à l'arduino, il ne fonctionne plus.
Je l'ai branché sur 3 pins digital en input et j'ai branché 3 leds en outputs

Ici le code :

int selecteurUn = 8; //Je déclare ici les positions du sélecteur
int selecteurDeux = 9;
int selecteurTrois = 10;

int ledUne = 2;  //Je déclare ici les leds
int ledDeux = 3;
int ledTrois = 4;

void setup() {
  pinMode(selecteurUn, INPUT); //Je setup les positions du sélecteur et les leds
  pinMode(selecteurDeux, INPUT);
  pinMode(selecteurTrois, INPUT);

  pinMode(ledUne, OUTPUT);
  pinMode(ledDeux, OUTPUT);
  pinMode(ledTrois, OUTPUT);
}

void loop() {
  if (selecteurUn, HIGH) {  //J'ai ici mes boucles if
    ledUne, HIGH; 
  }
  else {
    ledUne, LOW;
  }
  if (selecteurDeux, HIGH) {
    ledDeux, HIGH; 
  }
  else {
    ledDeux, LOW;
  }
  if (selecteurTrois, HIGH) {
    ledTrois, HIGH; 
  }
  else {
    ledTrois, LOW;
  }
}

Je ne sais pas si le sélecteur peux envoyer le courant qu'il reçoit dans des pins d'arduino
Merci de votre aide  :) 
Title: Re: Machine à café / Coffee machine
Post by: al1fch on Mar 14, 2020, 05:48 pm
Bonjour

je lis mal le code sur mon téléphone vu qu'il n'est pas publié entre les balises obligatoires.
(voir les messages épinglés en tête de forum) et rééditer en conséquence le message ci-dessus avant que le modérateur fasse le ménage.

j'ai un doute sur la syntaxe utilisée dans ce genre de lignes :
Code: [Select]
if (selecteurUn, HIGH)

D'autre part in ne sait rien du sélecteur mentionné et comment il est câblé en dehors de la carte Arduino
Title: Re: Machine à café / Coffee machine
Post by: Jambe on Mar 14, 2020, 07:28 pm
Il est urgent de prendre des cours de C, à aucun moment tu ne lis l'état des entrée et à aucun moment tu ne modifie l'état des sorties.

=> www.eskimon.fr (http://www.eskimon.fr)
Title: Re: PROJET: Schéma électrique pompe à eau
Post by: arduinolocea on Mar 14, 2020, 07:32 pm
Je sais mais je ne comprenais pas vraiment ou poster c'est pour cela que j'en avais fait plusieurs
Title: Re: Mesure du niveau d'eau précis
Post by: oumaima93 on Mar 15, 2020, 05:00 pm
salut
mon projet pfa lié sur la systéme de pompage automatique à l'aide d'arduino pour mesure le niveau de l'eau
s'il vous plait proposer avec mois c'est quoi on va ecrire comme introduction génrale et merci d'avance :)
Title: Re: Re: Mesure du niveau d'eau précis
Post by: J-M-L on Mar 15, 2020, 05:18 pm
s'il vous plait proposer avec mois c'est quoi on va ecrire comme introduction génrale
euh.. gé pa conppri


Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: jfs on Mar 15, 2020, 07:10 pm
euh.. gé pa conppri



Vu où c'est maintenant c'est pas grave...  :D
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: J-M-L on Mar 15, 2020, 07:11 pm
 :)  :)
Title: covid-19
Post by: sakloub on Mar 31, 2020, 09:38 pm
bonjour
je suis entrain de réaliser une machine a base de servo moteur .
je veux commande mon moteur a l'aide d'un bouton poussoir,  si j'appuis sur le bouton le servo change l'angle, je vais le fonctionner sur 3 angles. dés le début il fonctionne sur l'angle 67° , si j'appuis la premier fois il change l'angle à 130° la deuxième appuis il fonctionne à 180° si j'appuis encore une fois il revient à la premier angle et ainsi de suite ...
voici mon essai, mais il ne fonctionne pas, je sais pas d'ou viens le problème.
merci d'avance 
Code: [Select]
int marche=9;
const int vt=11;
int buttonPushCounter = 0;   // variable pour le comptage du nombre d'appuis sur le bouton poussoir
int buttonState = 1;         //Variable pour l'état actuel du bouton poussoir
int lastButtonState = 1;
int course= 67;
int compteur;
#include <Servo.h>
#include "LiquidCrystal.h"
LiquidCrystal lcd(6,7,2,3,4,5);

Servo moteur;

void setup() {
    moteur.attach(8);
  pinMode (marche, INPUT);
  pinMode ( vt ,INPUT);
  lcd.begin(16, 2);
  lcd.print("****TDS****");
  delay(1000);
  Serial.begin(9600);
}

void loop() {

  if (digitalRead(marche)==0)// départ cycle
  {lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("on");
 ////////

 buttonState = digitalRead(vt);

  // compare l'état actuel du bouton poussoir à l'état précédent mémorisé
  if (buttonState != lastButtonState) {
    // si l'état du bouton poussoir a changé et est HAUT, on incrémente la variable de comptage
    if (buttonState == LOW) {
     
      buttonPushCounter++;
     
    if (buttonPushCounter==3)
    {
      buttonPushCounter=0;
      }
    }
   
    lastButtonState = buttonState;
  }
 /////
 
  if (buttonPushCounter==0)
  {
    course==67;
    }
   else if (buttonPushCounter==1)
   {
    course==130;
    }
    else
    {
      course==180;
      }
     
  for (int position = 0; position <= course; position++) {
    moteur.write(position);
    delay(5);
  }
 
 
  for (int position = course; position >= 0; position--) {
    moteur.write(position);
    delay(5);
  }
}
  else {
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("off");
      delay(100);
       }
}
 
Title: Re: covid-19
Post by: Limp47 on Apr 01, 2020, 09:56 am
bonjour, as tu une résistance sur ton bouton ? si "non" , déclare tes buttons en INPUT_PULLUP (et inverse ta logique car quand activé le pullup renvoi ''LOW" ou "0".

détaille un peu plus ton problème que "ça ne fonctionne pas que l'on puisse cibler un peu mieux ..."
Title: Re: covid-19
Post by: phm78 on Apr 01, 2020, 10:01 am
C'est quoi ce titre de post ?
Title: Re: covid-19
Post by: jfs59 on Apr 01, 2020, 10:42 am
Quote
covid-19
Mar 31, 2020, 09:38 pm
Total irrespect pour les victimes ! vraiment n'importe quoi !

ça me fait penser a Audiart !   Les C** ça ose tout c'est a ça qu'on les reconnait !
Title: Re: covid-19
Post by: fdufnews on Apr 01, 2020, 11:05 am
On se détend et avant de stigmatiser on attend une explication.
D'ailleurs, il n'y a aucun manque de respect, au pire un titre inapproprié.
Title: Re: covid-19
Post by: al1fch on Apr 01, 2020, 11:23 am
Bonjour
Pour moi on est là dans la catégorie 'titre à la con' selon les termes du Modérateur
je vois deux solutions : changer le titre ou poubelle
Title: Re: covid-19
Post by: Limp47 on Apr 01, 2020, 12:17 pm
je me suis dis qu'il avait surement un projet en rapport avec ça ... je n'ai pas vu le mal de cette façon :o

de la a dire que c'est un manque de respect ... il a juste mis covid-19 , c'est pas une insulte ^^
Title: Re: covid-19
Post by: bidouilleelec on Apr 01, 2020, 12:20 pm
On se détend et avant de stigmatiser on attend une explication.
D'ailleurs, il n'y a aucun manque de respect, au pire un titre inapproprié.
Quand même quelque par ......

Cordialement,
bidouilleelec

Title: Re: covid-19
Post by: bidouilleelec on Apr 01, 2020, 12:24 pm
Regardez :
Code: [Select]
course==67;

==   ??????

Je ne vous félicite pas pour le titre
Title: Re: covid-19
Post by: lesept on Apr 01, 2020, 03:50 pm
Regardez :
Code: [Select]
course==67;

==   ??????

Je ne vous félicite pas pour le titre
Les mêmes un peu plus bas:
Code: [Select]
  if (buttonPushCounter==0)
  {
    course==67;
    }
   else if (buttonPushCounter==1)
   {
    course==130;
    }
    else
    {
      course==180;
      }
Title: Re: covid-19
Post by: 68tjs on Apr 01, 2020, 04:32 pm
Je rappellerai une citation de Desproges : On peut rire de tout mais pas avec n'importe qui.

Cette citation est à prendre dans les deux sens : bien sûr le premier auquel on pense mais aussi dans l'autre sens : Risque-t-on de blesser quelqu'un avec une blague ? Doit-on penser aux autres et non pas qu'à soi-même ?
Actuellement il ne s'agit pas de se moquer de croyance ou d'idées absurde, actuellement c'est plus de 300 morts par jour.

En ce moment c'est sûr que c'est oui on ne peut pas rire de tout.
Je ne pense pas que l'auteur ait fait volontairement de la provocation, il a été particulièrement maladroit.
Il ne lui est pas venu à l'idée qu'un ou plusieurs habitués de ce forum puissent être en réanimation, c'est maladroit mais c'est aussi irresponsable.

Skaloub reconnait que ton titre est déplacé en demandant au modérateur de supprimer ce fil de discussion et crées en un nouveau "plus conforme à la situation actuelle".
Ce sera la meilleure solution.
Title: Re: covid-19
Post by: olivier_pecheux on Apr 01, 2020, 04:50 pm
Quote
Skaloub reconnait que ton titre est déplacé en demandant au modérateur de supprimer ce fil de discussion et crées en un nouveau "plus conforme à la situation actuelle".
Ce sera la meilleure solution.
La solution la plus simple serait de changer le titre du post. Mais maintenant c'est un peut tard, il y a trop de messages.
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: fdufnews on Apr 02, 2020, 08:59 am
Si vous regardez le dernier post de sakloub (https://forum.arduino.cc/index.php?topic=674648.0) il n'y avait manifestement aucune insulte dans sa première demande.
Je pense que cette censure à priori est particulièrement inapproprié et je commence à me demander si le virus n'attaquerait pas un peu le cerveau et le bon sens des gens!
Et même avec plusieurs réponses déjà fournies il avait encore la possibilité de changer le titre (si on lui en avait laissé le temps...).
Title: Re: Bac-Ka-Poux-Bêle 2019-2020
Post by: jfs on Apr 02, 2020, 11:44 pm
Le plus simple lorsque le sujet est "pourri" par une dizaine de posts qui font polémique autour d'un titre.... c'est de refaire un autre sujet avec un titre moins enclin à discussions.

Le fait de le mettre ici coupe un peu court à toutes suites.
Title: S.V.P aide moi : probleme code debutant
Post by: maelf on Apr 13, 2020, 08:14 pm
Bonjour,je suis nouveaux sur le forum et aussi en arduino.
j'ai un probleme avec un de mais code ce code sers a remettre un compteur a 0.
La variable x le nombre de fois ou le relais doit être activer.
lors de la televersation il m affiche se code erreur:

sketch_apr13a:2: error: expected ',' or ';' before numeric constant

 unsigned long x = 975 052;

alors qu'il ne me semble pas SVP aide moi :( :

const char a = 7;
unsigned long x = 975 052;
unsigned char y = 0;

void setup() {
 
  pinMode(a,OUTPUT); // put your setup code here, to run once:
digitalWrite (a, LOW);
}

void loop() {
 if(x > y)
 {
  delay (50);
  digitalWrite (a, HIGH);
  delay (50);
  digitalWrite (a, LOW);
  x--;// put your main code here, to run repeatedly:
 }
else
{
 digitalWrite (a, LOW);
}
}


                     

Title: Re: S.V.P aide moi : probleme code debutant
Post by: kamill on Apr 13, 2020, 08:27 pm
Bonjour,

Tu aurais du poser ta question dans la partie générale et en mettant ton code entre balises de code.
Pour répondre à  ta question, il n'y a pas d'espace dans les nombres.
975052 et non 975 052
Title: Re: S.V.P aide moi : probleme code debutant
Post by: al1fch on Apr 13, 2020, 08:29 pm
Bonjour et bienvenue

Quote
je suis nouveaux sur le forum et aussi en arduino.
Deux bonnes raisons de passer la la 'case départ' =  la découverte des Règles du Forum (https://forum.arduino.cc/index.php?topic=546956.0)

-où poser les questions ?
-mettre un titre explicite, qui renseigne sur le problème rencontré
-comment poster le code ?
-tutoriels recommandés



Title: problème clignotement temporisé arduino
Post by: azerthuiop on Apr 15, 2020, 07:31 pm
Bonjour à tous, je suis débutant dans la programmation arduino, je n'ai pas beaucoup d'expérience, j'aimerai temporisé un clignotement avec un bouton marche/arrêt. Je vous détaille mon projet et le code.

a) Un appuie sur le bouton le clignotement démarre et s'arrête à la fin de la tempo. et la led reste allumée fixe.

b) Deuxième appuie sur le bouton, on éteint la led.

c)  En faisant un autre appuie sur le bouton, on doit redémarrer le cycle.

d) NB: Surtout pendant le clignotement, on doit pouvoir arrêter le cycle en appuyant à nouveau sur le bouton et la LED doit s'éteindre.

J'ai créer un code (voir ci dessous), mais le problème quand la LED clignote si j'appuie sur  le bouton, je n'arrête pas le clignotement. Et si une fois la tempo finie, j'appuie sur le bouton, la LED s'éteint mais quand j'appuie à nouveau sur le bouton, la LED reste fixe et le cycle ne redémarre pas.
N'existe t'il pas un code plus simple?
J'ai essayé avec un code "clignotant millis" mais je n'y arrive pas non plus. J'ai les même problèmes d'interruption et de clignotant et de redémarrage de cycle (cité ci dessus), si quelqu'un a la solution je suis preneur. Merci de votre aide.
 Voici mon code:


  int  LED                      = 13 ;
  int  bouton                  =   2 ;
  int  etat_bouton          =   0 ;
  boolean  arret_cligno   =   0 ;

  void setup ()
  {
  pinMode  ( LED , OUTPUT ) ;
  pinMode  ( bouton , INPUT_PULLUP ) ;
  arret_cligno = true ;
  }
  void loop ( )
 {
  etat_bouton = digitalRead ( bouton ) ;
  if ( etat_bouton == LOW )
  {
  digitalWrite ( LED , HIGH ) ;
  }
  if ( etat_bouton == HIGH )
  {
  digitalWrite ( LED , LOW ) ;
  }
  else
  {
  if ( arret_cligno )
  {
  for ( int compteur = 1 ; compteur <= 5 ; compteur ++ )
  // boucle de comptage.
  {
  for ( int  x_de_fois = 0 ; x_de_fois < compteur ; x_de_fois ++ )
   // boucle de clignotement.
   {
   digitalWrite ( LED , HIGH ) ;
   delay ( 500 ) ;
   digitalWrite ( LED , LOW ) ;
   delay ( 500 ) ;
   }
   delay  ( 100 ) ; // j'ai trouvé cette valeur pour faire un clignotement régulier.
   }
   arret_cligno = false ;
  }}}

 
  MERCI POUR VOTRE AIDE.
















 
 
Title: Re: problème clignotement temporisé arduino
Post by: J-M-L on Apr 16, 2020, 12:55 am
Vous ne pouvez pas mettre de délais si vous voulez pouvoir appuyer sur le bouton à tout moment

C'est typiquement une définition de programme qui se prête bien à la programmation par machine à états (cf mon tuto éventuellement (http://forum.arduino.cc/index.php?topic=470879.0))


__________
Merci de lire comment utiliser le forum (les posts épinglés en haut du forum comme « Bien éditer son post pour les nuls (http://forum.arduino.cc/index.php?topic=394754.0) » , « Faire un Nouveau Sujet ou le corriger avec les Balises... (http://forum.arduino.cc/index.php?topic=315372.0) » et « Règles du forum francophone (http://forum.arduino.cc/index.php?topic=546956.0) »), et corrigez votre premier post pour en faire un post « propre »
Title: Re: problème clignotement temporisé arduino
Post by: azerthuiop on Apr 16, 2020, 12:57 pm
Bonjour à tous, je suis débutant dans la programmation arduino, je n'ai pas beaucoup d'expérience, j'aimerai temporisé un clignotement avec un bouton marche/arrêt. Je vous détaille mon projet et le code.

a) Un appuie sur le bouton le clignotement démarre et s'arrête à la fin de la tempo. et la led reste allumée fixe.

b) Deuxième appuie sur le bouton, on éteint la led.

c)  En faisant un autre appuie sur le bouton, on doit redémarrer le cycle.

d) NB: Surtout pendant le clignotement, on doit pouvoir arrêter le cycle en appuyant à nouveau sur le bouton et la LED doit s'éteindre.

J'ai créer un code (voir ci dessous), mais le problème quand la LED clignote si j'appuie sur  le bouton, je n'arrête pas le clignotement. Et si une fois la tempo finie, j'appuie sur le bouton, la LED s'éteint mais quand j'appuie à nouveau sur le bouton, la LED reste fixe et le cycle ne redémarre pas.
N'existe t'il pas un code plus simple?
J'ai essayé avec un code "clignotant millis" mais je n'y arrive pas non plus. J'ai les même problèmes d'interruption et de clignotant et de redémarrage de cycle (cité ci dessus), si quelqu'un a la solution je suis preneur. Merci de votre aide.
 Voici mon code:


  int  LED                      = 13 ;
  int  bouton                  =   2 ;
  int  etat_bouton          =   0 ;
  boolean  arret_cligno   =   0 ;

  void setup ()
  {
  pinMode  ( LED , OUTPUT ) ;
  pinMode  ( bouton , INPUT_PULLUP ) ;
  arret_cligno = true ;
  }
  void loop ( )
 {
  etat_bouton = digitalRead ( bouton ) ;
  if ( etat_bouton == LOW )
  {
  digitalWrite ( LED , HIGH ) ;
  }
  if ( etat_bouton == HIGH )
  {
  digitalWrite ( LED , LOW ) ;
  }
  else
  {
  if ( arret_cligno )
  {
  for ( int compteur = 1 ; compteur <= 5 ; compteur ++ )
  // boucle de comptage.
  {
  for ( int  x_de_fois = 0 ; x_de_fois < compteur ; x_de_fois ++ )
   // boucle de clignotement.
   {
   digitalWrite ( LED , HIGH ) ;
   delay ( 500 ) ;
   digitalWrite ( LED , LOW ) ;
   delay ( 500 ) ;
   }
   delay  ( 100 ) ; // j'ai trouvé cette valeur pour faire un clignotement régulier.
   }
   arret_cligno = false ;
  }}}

  
  MERCI POUR VOTRE AIDE.
















  
Bonjour,merci de votre réponse,en fait je voudrais tous simplement faire 1 appui sur bouton démarrer une tempo à la fin de la tempo allumer une led fixe et pouvoir arreté cette led en appuyant à nouveau sur le bouton.comme le fonctionnement d'une alarme,tempo de sortie , cordialement.
Title: Re: problème clignotement temporisé arduino
Post by: J-M-L on Apr 16, 2020, 02:32 pm
Mouais et moi  voudrais tous simplement que vous postiez correctement au lieu de polluer le forum avec des quotes à rallonge.... on dirait que vous ne voulez pas donc.. bye

cordialement
Title: Re: problème clignotement temporisé arduino
Post by: iznobe on Apr 16, 2020, 02:44 pm
Salut ,

si vous voulez de l ' aide quelquepart ( y compris sur un forum ) , il faut respectez les regles de cet endroit .

Faire une demande d' aide proprement avec un post lisible , bien presente et agreable amenera certainement plus de monde a vous aider .

Editez vos posts precedents en ce sens , apres avoir lu les regles du forum , et certainement qu ' on vous aidera .
Title: Afficher un score de 0 à 99 avec des leds, multiplexing double 74HC595
Post by: lymbe on May 27, 2020, 05:19 pm
Bonjour à tous,
Je souhaite afficher un score avec deux colonnes de 9 leds de 0 à 99.
J'ai 2x 3 CI 74HC595, l'un fonctionne parfaitement, et le second pour afficher le score marche de temps en temps de façon incompréhensible, quand il marche je suis content, quand il ne marche pas c'est le second CI qui n'allume plus les leds. Le fait qu'il fonctionne aléatoirement me laisse perplexe, c'est contraire au sens de la programmation... Ainsi je sollicite votre aide pour m'aider à en diagnostiquer la cause.
Je fournirai tous les élements demandés..

une partie du programme correspondant à ma problématique.

byte pinscore[2][10] = {{0,1,2,3,4,5,6,7,9,10},{0,11,12,13,14,15,17,18,19,20}}; //[0][0..8] unité, [1][0..8] dizaine, score jusqu'a 99 !
byte score=87;         


unsigned long chr;
unsigned int pau=1000;
boolean ledmise=true;


int SER_Pin = 8;                                      //pin 14 sur le 75HC595 //Toutes les pins digitales sont utilisables !!!
int RCLK_Pin = 9;                                     //pin 12 sur le 75HC595
int SRCLK_Pin = 10;                                   //pin 11 sur le 75HC595
#define number_of_74hc595s 3                          //nb de 74HC595
#define numOfRegisterPins number_of_74hc595s * 8
boolean registers[numOfRegisterPins];

int SER_Pin1 = 11;                                      //pin 14 sur le 75HC595
int RCLK_Pin1 = 12;                                     //pin 12 sur le 75HC595
int SRCLK_Pin1 = 13;                                   //pin 11 sur le 75HC595
#define number_of_74hc595s1 3                          //nb de 74HC595
#define numOfRegisterPins1 number_of_74hc595s1 * 8
boolean registers1[numOfRegisterPins1];

void clearRegisters(){
for(int i = numOfRegisterPins - 1; i >=  0; i--){registers = LOW;}}
void writeRegisters(){
digitalWrite(RCLK_Pin, LOW);
for(int i = numOfRegisterPins - 1; i >=  0; i--){
digitalWrite(SRCLK_Pin, LOW);
digitalWrite(SER_Pin, registers);
digitalWrite(SRCLK_Pin, HIGH);}
digitalWrite(RCLK_Pin, HIGH);}
void setRegisterPin(int index, int value){
registers[index] = value;}

void clearRegisters1(){
for(int i = numOfRegisterPins1 - 1; i >=  0; i--){registers1 = LOW;}}
void writeRegisters1(){
digitalWrite(RCLK_Pin1, LOW);
for(int i = numOfRegisterPins1 - 1; i >=  0; i--){
digitalWrite(SRCLK_Pin1, LOW);
digitalWrite(SER_Pin1, registers1);
digitalWrite(SRCLK_Pin1, HIGH);}
digitalWrite(RCLK_Pin1, HIGH);}
void setRegisterPin1(int index, int value){
registers1[index] = value;}
///////////////////////////////////// CI

void setup() {
scoreunit(score);}

void digon1(byte d){          //rectifier// (dig 0 CI pin 15, dig 1..7 CI pin 1..7),( dig 8 CI2 pin15, dig 9..15 CI2 pin 1..7),(dig16 CI3 pin15, dig 17..23 CI3 pin 1..7)
setRegisterPin1(d, HIGH);   
writeRegisters1(); 
}
void digoff1(byte d){          //rectifier// (dig 0 CI pin 15, dig 1..7 CI pin 1..7),( dig 8 CI2 pin15, dig 9..15 CI2 pin 1..7),(dig16 CI3 pin15, dig 17..23 CI3 pin 1..7)
setRegisterPin1(d, LOW);   
writeRegisters1(); 
}

void scoreunit(byte s){
 for (int i=1;i<=int(s/10);i++){digon1(pinscore[1]);}
 for (int i=1;i<=(s-(int(s/10)*10));i++){digon1(pinscore[0]);} 
}

void loop() {}
Title: Re: Afficher un score de 0 à 99 avec des leds, multiplexing double 74HC595
Post by: J-M-L on May 27, 2020, 11:03 pm
vous avez vu qu'à un moment votre code passe en italique ? ---> le formatage est incorrect et le code modifié à l'écran

corrigez votre post ci dessus et rajoutez les code tags autour du code:
[code] // votre code ici [/code].

ça doit ressembler à cela:
Code: [Select]
// votre code ici
(faites aussi ctrl-T (PC) or cmd-T (Mac) dans l'IDE avant de copier le code pour qu'il soit indenté correctement)


Title: Demande de KARMA
Post by: lymbe on May 28, 2020, 04:29 pm
Bonjour à tous,
je suis arduinoïste et ai besoin de plein de Karma.
Aidez moi s'il vous plaît à en avoir+++ J-M-L.
Le seul capable d'expliquer de façon compliquer des choses simples.
Merci d'avance !
Title: Re: Demande de KARMA
Post by: lesept on May 28, 2020, 04:38 pm
Tu paies par chèque ?
Title: Re: Demande de KARMA
Post by: lymbe on May 28, 2020, 04:43 pm
J'avais oublié de préciser, je plante un arbre à chaque clique de KARMA.
Un noisetier pour être précis.
Merci !!
Title: Re: Demande de KARMA
Post by: al1fch on May 28, 2020, 04:49 pm
J'ai une petite idée de l'endroit où ce fil va , avec bon sens, aboutir ....
Title: Re: Demande de KARMA
Post by: hbachetti on May 28, 2020, 04:57 pm
Si l'on pouvait accorder des karmas négatifs ce serait avec plaisir.
Au vu de ta demande (https://forum.arduino.cc/index.php?topic=686850.0), je considère qu'aucun élément pouvant aider à répondre n'a été fourni, et la réponse de J-M-L est parfaitement appropriée.

Je vote OUI pour la poubelle (les 2 sujets).
Title: Re: Demande de KARMA
Post by: 68tjs on May 28, 2020, 05:03 pm
Quote
Je vote OUI pour la poubelle (les 2 sujets).
Nous sommes déjà deux .....................mais par un prompt renfort nous nous vimes trois mille en arrivant au port.Tant, à nous voir marcher avec un tel visage, Les plus épouvantés reprenaient leur courage !
Title: [URGENT] Arduino / Raspberry liaison série (99% réussis)
Post by: melyqn on Jun 11, 2020, 04:08 pm
Bonjour à tous,

Voila j'ai besoin de votre aide au plus vite !

Je cherchais à communiquer entre ma carte Arduino et Raspberry en liaison série.
Jusque la tout va bien !

sur ma carte Raspberry je reçoit bien les infos de l'arduino avec un code en Python :


import serial

serialArduino = serial.Serial('/dev/ttyACM0', 9600)

while True :

print(serialArduino.readline())


Ce que j'aimerais faire, c'est pouvoir récupérer des variables,
par exemple :

X = 10 (sur arduino)

pouvoir la récupérer sur Raspberry une fois envoyé pour la retravailler :

x = x + 2 (exemple)


J'ai besoin de vous !

MERCI par avance !!
Title: Re: [URGENT] Arduino / Raspberry liaison série (99% réussis)
Post by: melyqn on Jun 11, 2020, 04:47 pm
Voici mon code Arduino ( ce sont des capteurs qui renvoient des distances) :

int detectorPin = A2; // capteur 1 branché sur sortie analogique A1
int detector2Pin = A3; // capteur 2 branché sur sortie analogique A2
int detector3Pin = A4; // capteur 3 branché sur sortie analogique A3
int interval = 0;

void setup() {
Serial.begin(9600);
Serial.println(« les distances des capteurs vont etre envoyées »);

}

void loop() {

interval = analogRead(detectorPin); // lecture d'informations du capteur en analogique
float distance = (6787.0 /((float)interval - 3.0)) - 4.0; // transforme valeur reçu en cm
Serial.print(« distance capteur1 = »);// affiche distance capteur1= x
if (distance <= 50){

Serial.print (distance); // valeur mesurée par le capteur
Serial.println(« Cm »);// cm après la valeur
}

interval = analogRead(detector2Pin);
float distance2 = (6787.0 /((float)interval - 3.0)) - 4.0; // transforme valeur reçu en cm
Serial.print(« distance capteur2 = »);
if (distance <= 50){

Serial.print (distance2);
Serial.println(« Cm »);
}

interval = analogRead(detector3Pin);
float distance3 = (6787.0 /((float)interval - 3.0)) - 4.0; // transforme valeur reçu en cm
Serial.print(« distance capteur3 = »);
if (distance <= 50){
Serial.print (distance3);
Serial.println(« Cm »);
}

delay(1250);
Serial.println("----------------------------------------------------------------");

}

**côté raspberry je récupère le tout avec ça :

Import serial

serialArduino = serial.Serial('/dev/ttyACM0', 9600)

While True :

print(serialArduino.readline())

** et ducoup j'aimerais réussir à utiliser la distance reçu pour faire un if
Title: Re: [URGENT] Arduino / Raspberry liaison série (99% réussis)
Post by: al1fch on Jun 11, 2020, 05:24 pm
Bonjour

Sur ce forum les' URGENT' et  'aide au plus vite'  sont contre productifs.

Par ailleurs , prendre le temps de consulter ces trois messages  importants :
(https://forum.arduino.cc/index.php?action=dlattach;topic=689792.0;attach=368037)
Title: Re: [URGENT] Arduino / Raspberry liaison série (99% réussis)
Post by: melyqn on Jun 11, 2020, 05:42 pm
Bon ok j'ai compris, personne ne veut m'aider...
Title: Re: [URGENT] Arduino / Raspberry liaison série (99% réussis)
Post by: hbachetti on Jun 11, 2020, 05:56 pm
Bien au contraire mais si ne te conformes pas aux règles du forum, aucune chance.

Commence déjà par ceci (https://forum.arduino.cc/index.php?topic=315372.msg4034761#msg4034761)

Soit tu es un professionnel, auquel cas je veux bien entendre dire qu'il peut y avoir urgence et délais à respecter, mais dans ce cas tu ne poserais pas des questions aussi basiques.
Soit tu es un particulier avec un petit projet personnel, et dans ce cas il n'y a pas d'urgence.
Title: Re: [URGENT] Arduino / Raspberry liaison série (99% réussis)
Post by: melyqn on Jun 11, 2020, 06:01 pm
Effectivement non je ne suis pas professionnel, c'est pour un projet personnel mais je suis en retard niveau Timing.

je ne veux pas vous imposer mon retard, d'ailleurs je ne voulais pas déroger aux règles du Forum.
Je ne voulais être méchant dans le terme Urgence :/

Je vous fait mes excuses
Title: Re: [URGENT] Arduino / Raspberry liaison série (99% réussis)
Post by: to0n7 on Jun 11, 2020, 06:23 pm
Bonjour melyqn,

Je ne peux pas t'aider pour la partie raspberry. Essaye d'utiliser les balises de code.
Je ne connais pas non plus ton code mais je pense (dis-moi si je me trompe) que tous tes if sont les mêmes:
Code: [Select]

if (distance <= 50){

Serial.print (distance); // valeur mesurée par le capteur
Serial.println(« Cm »);// cm après la valeur
}


Est-ce que ça ne devrais pas être des if avec tes différentes variables distance:
Code: [Select]

int detectorPin = A2; // capteur 1 branché sur sortie analogique A1
int detector2Pin = A3; // capteur 2 branché sur sortie analogique A2
int detector3Pin = A4; // capteur 3 branché sur sortie analogique A3
int interval = 0;

void setup() {
Serial.begin(9600);
Serial.println(« les distances des capteurs vont etre envoyées »);

}

void loop() {

interval = analogRead(detectorPin); // lecture d'informations du capteur en analogique
float distance = (6787.0 /((float)interval - 3.0)) - 4.0; // transforme valeur reçu en cm
Serial.print(« distance capteur1 = »);// affiche distance capteur1= x
if (distance <= 50){

Serial.print (distance); // valeur mesurée par le capteur
Serial.println(« Cm »);// cm après la valeur
}

interval = analogRead(detector2Pin);
float distance2 = (6787.0 /((float)interval - 3.0)) - 4.0; // transforme valeur reçu en cm
Serial.print(« distance capteur2 = »);
if (distance2 <= 50){

Serial.print (distance2);
Serial.println(« Cm »);
}

interval = analogRead(detector3Pin);
float distance3 = (6787.0 /((float)interval - 3.0)) - 4.0; // transforme valeur reçu en cm
Serial.print(« distance capteur3 = »);
if (distance3 <= 50){
Serial.print (distance3);
Serial.println(« Cm »);
}

delay(1250);
Serial.println("----------------------------------------------------------------");

}
Title: Re: [URGENT] Arduino / Raspberry liaison série (99% réussis)
Post by: al1fch on Jun 11, 2020, 06:24 pm
Quote
c'est pour un projet personnel mais je suis en retard niveau Timing.
Qui détermine le timing ?
SI c'est réellement strictement personnel ça doit pouvoir se gérer pour apprendre à traiter sous Pyhon les lignes reçues et extraire l'info.
Title: Re: [URGENT] Arduino / Raspberry liaison série (99% réussis)
Post by: dfgh on Jun 11, 2020, 06:38 pm
hello
à tout hasard
ICI (https://projetsdiy.fr/code-python-lecture-port-serie-raspberry-pi/)
Title: COMMANDE SORTIE ARDUINO MEGA VIA ANDROID BLUETOOTH ELECTRONICS ET HC05
Post by: yankedy on Jun 17, 2020, 06:20 pm
Bonjour,
J ai un problème de commande d une sortie 13 du Arduino Mega en passant par mon tel android, l application Bluetooth Electronics et le module HC-05.

Le module HC-05 est bien appairé a l application ou j ai programmer un bouton pour envoi de la commande "a" ou "b"

Quelqu'un pourrait il m aider sur ce point?

Merci d'avance


Code: [Select]

#include <SoftwareSerial.h>
#define rxPin 11 // Broche 11 en tant que RX, à raccorder sur TX du HC-05
#define txPin 10 // Broche 10 en tant que TX, à raccorder sur RX du HC-05

SoftwareSerial mySerial(rxPin, txPin);
char junk;
String inputString="";


void setup()
{
   // define pin modes for tx, rx pins:
    pinMode(rxPin, INPUT);
    pinMode(txPin, OUTPUT);
    pinMode(13, OUTPUT);
    mySerial.begin(9600);
    Serial.begin(9600);
}

void loop()
{
  int i = 0;
  char someChar[32] = {0};
  // when characters arrive over the serial port...
  if(Serial.available()) {
    do{
      someChar[i++] = Serial.read();
     delay(3);
    }while (Serial.available() > 0);
    mySerial.println(someChar);
    Serial.println(someChar);
   }
   
   while(mySerial.available())
       Serial.print((char)mySerial.read());
       
//DECLARATION DE LA FONCTION SORTIE
  if(Serial.available()){
  while(Serial.available())
    {
      char inChar = (char)Serial.read(); //Lire l'entrée
      inputString += inChar; //Construit une chaine de caractére a partir des caractére reçus
    }
    Serial.println(inputString);
    while (Serial.available() > 0)
    { junk = Serial.read() ; }
   if(inputString == "a"){ //Dans le cas ou l'entrée est 'a' la LED s'allume
     digitalWrite(13, HIGH);
   }else if(inputString == "b"){ //Dans le cas ou l'entrée est 'b' la LED s'eteint
     digitalWrite(13, LOW);
   }
   inputString = "";
   }
}
Title: Re: COMMANDE SORTIE ARDUINO MEGA VIA ANDROID BLUETOOTH ELECTRONICS ET HC05
Post by: yankedy on Jun 18, 2020, 04:22 pm
 :smiley-confuse:  :smiley-confuse: Personne pour un petit coup de main
MON PROJET =  CABANE A POULE AUTOMATIQUE

J en suis loin pour le moment mais je compte bien au moins automatiser la trappe avec un calendrier des ephemeride si possible et la distribution d aliment.

Merci d avance a ceux qui pourrais lire ce POST
Title: Re: COMMANDE SORTIE ARDUINO MEGA VIA ANDROID BLUETOOTH ELECTRONICS ET HC05
Post by: al1fch on Jun 18, 2020, 04:28 pm
Bonjour

L'utilisation systématique des majuscules (= CRIER)   fonctionne comme un repoussoir , sur ce forum comme sur de nombreux autres.