Go Down

Topic: moteur (Read 395 times) previous topic - next topic

Chron5

Bonjour
nouveau sur le forum, je suis entrain de réaliser une maquette de portail automatique avec un moteur CC et des fin de course. Je réalise la programmation avec Mblock pour des collégiens. Mon moteur ne fonctionne que par accoup? J'utilise une carte arduino UNO et une carte motor shield
Ci joint le programme arduino.
Merci de votre aide.
#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>

double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;
double __var__55;
double __var__53;
double __var__52;
double __var__50;

void setup(){
    pinMode(7,INPUT);
    pinMode(5,INPUT);
    pinMode(4,INPUT);
    pinMode(2,INPUT);
    pinMode(13,OUTPUT);
    pinMode(11,OUTPUT);
}

void loop(){
    __var__55 = digitalRead(7);
    __var__53 = digitalRead(5);
    __var__52 = digitalRead(4);
    __var__50 = digitalRead(2);
    if((((digitalRead(2))==(1))) && (((digitalRead(4))==(0)))){
        digitalWrite(13,1);
        digitalWrite(11,1);
    }else{
        digitalWrite(13,1);
        digitalWrite(11,0);
    }
    if((((digitalRead(5))==(1))) && (((digitalRead(7))==(0)))){
        digitalWrite(13,0);
        digitalWrite(11,1);
    }else{
        digitalWrite(13,1);
        digitalWrite(11,0);
    }
    _loop();
}

void _delay(float seconds){
    long endTime = millis() + seconds * 1000;
    while(millis() < endTime)_loop();
}

void _loop(){
}

pert

I've deleted your other cross post.

Cross posting is against the rules of the forum. The reason is that duplicate posts can waste the time of the people trying to help. Someone might spend 15 minutes writing a detailed answer on this thread, without knowing that someone else already did the same in the other thread.

Repeated cross posting will result in a suspension from the forum.

In the future, please take some time to pick the forum section that best suits the topic of your question and then only post once to that forum section. This is basic forum etiquette, as explained in the sticky "How to use this forum - please read." post you will find at the top of every forum section. It contains a lot of other useful information. Please read it.

Thanks for your cooperation.

al1fch

#2
Aug 20, 2019, 10:39 am Last Edit: Aug 20, 2019, 10:40 am by al1fch
Bonjour et bienvenue

Pour partir d'un bon pas mieux vaut commencer içi : (où poster ? quelles informations fournir ? comment insérer correctement du code dans un message ?......)



dbrion06

Bonjour,
il y a des points qui me chagrinent dans votre code.
Pour la forme, je recopie votre code dans un format lisible pour les utilisateurs de tablettes (et qui permet d'eviter l'affichage de neo-hieroglyphes/ smileys rigolards, le passage en italique / en gras et autres sources de confusion...) et je mets quelques commentaires au passage sur les sources de mon chagrin.

Code: [Select]
#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h> // pourquoi lier SoftwareSerial, alors que Srial fait l'affaire pour debugguer (et que ni l'un ni l'autre ne sont utilisés....)

double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;
double __var__55; // pourquoi faire commencer une variable par des _ (convention pour des variables liées au système)?
double __var__53;
double __var__52;
double __var__50;

void setup(){
    pinMode(7,INPUT);
    pinMode(5,INPUT);
    pinMode(4,INPUT);
    pinMode(2,INPUT);
    pinMode(13,OUTPUT);
    pinMode(11,OUTPUT);
}

void loop(){
    __var__55 = digitalRead(7);
    __var__53 = digitalRead(5);
    __var__52 = digitalRead(4);
    __var__50 = digitalRead(2); // ces variables ne servent à rien;

    if((((digitalRead(2))==(1))) && (((digitalRead(4))==(0)))){ // utiliser __var__xx
        digitalWrite(13,1);
        digitalWrite(11,1);
    }else{
        digitalWrite(13,1);
        digitalWrite(11,0);
    }
    if((((digitalRead(5))==(1))) && (((digitalRead(7))==(0)))){
        digitalWrite(13,0);
        digitalWrite(11,1);
    }else{
        digitalWrite(13,1);
        digitalWrite(11,0);
    }
    _loop(); // ne sert à rien: pourquoi le mettre
}

void _delay(float seconds){ // n'est jammais invoqué
    long endTime = millis() + seconds * 1000;
    while(millis() < endTime)_loop(); // est bloquant: delay  de l'arduino a de fortes chances d'être equivalent: pourquoi réinventer la roue?
}

void _loop(){// ne sert à rien
}



Par ailleurs, je serais curieux de savoir comment sont alimentés votre arduino et votre moteur (alims disjointes?)
 -ça peut poser des problèmes autres que logiciels de reintialisation de l'arduino -
a

bricofoy

Pour le code "bizarre" si j'ai bien compris il utilise mblock, donc c'est du code auto-généré, d'où les noms de variables étranges, etc etc
-tu savais que si tu passe le CD de windows à l'envers, tu entends une chanson satanique ?
-non, mais il y a pire : à l'endroit, ça l'installe !

dbrion06

Certes;
mais s'il a une reconnaissance vocale, il ferait bien de murmurer à l'oreille de mblock que son code est vraiment bizarre (avec les progrès de l'informe Attique, je suis sûr que ça marchera ... un jour)
En plus, il existe des testeurs de programme (cpplint.py, de google pour ne pas le nommer) qui hurlent si la première ligne n'est pas un commentaire contenant un copyright -et mettre le nom de l'auteur, fût il M.Block, à la place d'un copyright  n'est pas absurde et peut même être utile)
.
Et je me demande si la prise en main de mblock et l'interprétation du code généré ne seraient pas un petit peu plus chronophages (en plus de prendre l'habitude, inquiétante vue la jeunesse de l'audience de mblock,  de code bizarroîde et TRES mal commenté: Socrate a bu une décoction de cigue pour moins que ça) qu'utiliser directement l'IDE arduino et ses exemples....

Et ceci n'enlève rien aux soupçons que j'ai sur la façon dont le moteur est alimenté (sur l'USB du PC?)

pert

Another cross post by @Chron5 deleted. This is your last warning. If you do it again then I'm going to give you an account suspension.

Chron5

#7
Aug 26, 2019, 10:18 am Last Edit: Aug 26, 2019, 10:30 am by Chron5
Effectivement je suis completement novice et le code est entierement généré par MBlock. Pour ce qui est de l'alimentation du moteur c'est bien par le port USB. J'ai essayé une alim extérieure sur lacarte UNO et sur la moteur shield, le résultat était le même.
Pour les variables elles sont là uniquement pour vérifier leures états dans une fenetre de MBlock.
Merci quand même pour l'ensemble de vos encouragement!

dbrion06

"Pour ce qui est de l'alimentation du moteur c'est bien par le port USB. J'ai essayé une alim extérieure sur lacarte UNO et sur la moteur shield, le résultat était le même."
Sui vous precisiez un peu:
a) la nature/consommation des moteurs
b) les caracteristiques de votre alim exterieure,
je crois que le monde serait un (tout) petit peu meilleur.
Je note que vous avez un e fenêtre de mblock et que vous l'avez pris en main: avez vous vu des incoherences entre l'etat réel de votre syteme et ce que vous pensez etre l'etat? s'il n'y a pas d'incoherences, je soupçonne le materiel....

Chron5

Merci effectivement je ne vois pas d'incohérence entre ma programmation et ce qui devrais ce passer par contre je supose qu'électroniquement sur le montage du moteur quelque chose n'est pas réalisé correctement. J'ai rajouté une diode pour éviter les retours (conseil d'un autre site arduino) rien ni fait.
J'ai enlever l'alim externe trop puissante (devait délivrer du 9v et en mesurant c'était du 12V).

dbrion06

Je suis un peu gené, parce qu'il est très difficile (autrement que par des recoupements et des paris) de savoir quel est votre matériel.
Pourriez vous
a) préciser quel est votre moteur (un lien vers une doc serait idéal; sinon, un lien vers le site où vous l'avez acheté ne serait pas mal), ceci pour savoir ce qu'il demande.
b) donner un schéma de votre matériel: la solution la plus simple est de faire un croquis à main levée à partir de l'existant (permet de detecter d'éventuelles horreurs), de le photographier avec un "smart" "phone", et de poster le dessin, fût il laid, avec les modes d'emploi de ce forum (et vu les cris de modérateurs, vous devriez réellement prendre connaissance des modes d'emploi de ce forum)

Ceci afin d'éviter une usure prématurée de boules de crystal et d'yeux telescopiques (les gens qui ont des connaissances en interfaçage moteur-arduino ont des boules de crystal?)

Chron5

J'ai beau lire les infos sur le forum et son utilisation je ne trouve pas coment envoyerune photo. Pouriez vous m'aider.

68tjs

Bonjour,

Ce n'est  pas du tout évident mais indispensable si tu veux que ceux qui sont sur tablette ou téléphone te répondent.

Si tu es dans le mode "Quick Reply", celui qui bien visible en bas de la page il faut faire un "preview" pour avoir accès à la totalité des menus.
Si tu utilise le mode "Reply" accessible en cliquant sur les rectangles juste en dessous du message ce n'est pas la peine de faire un "preview" préalable.

Maintenant tu vois apparaître sous la fenêtre d'édition un lien cliquable "Attachment and other options".
Tu cliques dessus et tu sélectionnes sur ton disque dur  le fichier image à transférer sur le site arduino.
Et tu publies.


Mais ce n'est pas fini !
Tu n'a qu'un lien et pour voir l'image il faudrait la télécharger ce que nous n'aimons pas du tout faire.
Avec la souris tu survoles le lien vers ton image et tu copies son adresse sur le serveur arduino.

Tu ouvre ton message en édition, une fois ouvert tu cliques sur  l'icône en forme d'écran (à gauche de la chaîne qui est pour les liens extérieur comme le matériel : utile aussi à connaitre) et tu y copies l'adresse de l'image que tu viens de copier.

Et tu publies et c'est bon OUF.

Je te dis de suite nous n'y sommes pour rien, si tu veux que cela change il faut voir avec Massimo Banzi et là je te souhaite beaucoup de courage, si tu es chevalier des causes perdues d'avance tu sera à ton affaire..

Chron5

Bonjour
Veuillez trouver ci jointe la photo (en pièce jointe désolé je n'ai pas réussi a faire autrement) de l'emballage du moteur. Merci pour votre aide sur le forum.
Bonne journée, désolé de ne pas avoir répondu plus tôt, reprise des cours oblige.
CDT

Chron5


Bonjour
Veuillez trouver ci jointe la photo (en pièce jointe désolé je n'ai pas réussi a faire autrement) de l'emballage du moteur. Merci pour votre aide sur le forum.
Bonne journée, désolé de ne pas avoir répondu plus tôt, reprise des cours oblige.
CDT
[/quote]

Go Up