Recent Posts

Pages: [1] 2 3 ... 10
1
Français / Re: Faire un protocole, rs485,...
Last post by 68tjs - Today at 08:34 am
Pour la programation par l'USB l'interface série est utilisée.
La carte UNO comprend un circuit intégré (atmega16U2 pour les officielles ou CH340 pour les clones) qui fait la conversion USB/UART (ou interface série matérielle).
Il est possible que ton "shield", qui est semble-t-il connecté sur l'interface série, bloque ou déforme par sa présence les signaux provenant de l'USB, rendant ainsi la programmation impossible.

Que se passe t-il si tu retire ce "shield" pour reprogrammer et que tu le replace après ?
Faire cette manip permettra de bien identifier "le coupable", il faut évacuer tous les doutes et ne garder que des certitudes.
2
Programming Questions / Re: I'll never understand func...
Last post by AWOL - Today at 08:34 am
Hi again,
Econjack, I copied your sample into my code but came up with this error:

expected primary-expression before 'switch'

void loop()
{
  for (x = 0; x < 8; x++)
  {
    temp
  • = digitalRead (switch
  • );

  }
}

which seems to mean incorrect bracket use/location.
But I just can't see it. What am I doing wrong now??

Aussiewill

switch is a C++ keyword.

Please remember to use code tags when posting code .
3
Project Guidance / Re: Stepper motor speed contro...
Last post by PaulRB - Today at 08:33 am
If you are using this multiple picture technique, I assume you will use some software package that can combine the pictures in a way that compensates for minor registration errors between frames? If so, why is gear backlash a problem?
4
Programming Questions / Re: I'll never understand func...
Last post by AWOL - Today at 08:33 am
@bidouilleelec
Code: [Select]
  myservo[x].attach(x-1);
You have a pin numbered -1?
5
Hi again,
Econjack, I copied your sample into my code but came up with this error:

expected primary-expression before 'switch'

void loop()
{
  for (x = 0; x < 8; x++)
  {
    temp
  • = digitalRead (switch
  • );

  }
}

which seems to mean incorrect bracket use/location.
But I just can't see it. What am I doing wrong now??

Aussiewill
6
Installation & Troubleshooting / Re: vmff
Last post by mattlogue - Today at 08:28 am
Try this. The ultrasonic sensors can be a bit finicky... https://www.instructables.com/id/Simple-Arduino-and-HC-SR04-Example/
7
Français / Demande d'aide sur un projet d...
Last post by tony-switch - Today at 08:27 am
Bonjour à tous,

Avant tout je précise que mon projet se développe avec un arduino pro micro.
Je me dirige vers vous car je n'ai, malgré mes recherches, pas réussi à faire ce que je voulais.

Mon idée est de pouvoir envoyer un numéro série correspondant à l'une des touches d'un clavier traditionnel.
Récupérer cette valeur puis l'associer avec un de mes boutons du clavier que j'ai monté.

Exemple : Bouton : k2 = Touche clavier 'z'

Je souhaite faire ca pour communiquer avec une application qui permettra de choisir les touches qu'on veut associer.

J'ai réfléchi et tenté plusieurs idées sans résultat satisfaisant (enfin, j'y arrive mais c'est trop limité. un seul bouton - pour 9 ou 10 touches configurable et j'ai au moins 9 boutons à devoir configurer).


J'ai essayer plusieurs serial en parallèle (Serial.begin, Serial1.begin...)(dans ce cas la nous sommes limités à 4 Serial max)
J'ai tenté de combiner les numéro : if(etat == '1' && '2' && ...)(dans ce cas l'execution se fait individuellement puis en groupe)
J'ai tenté de convertir en string : if(etat == "toto")(cela n'a pas fonctionné)


Voila, donc pour résumer :

Je souhaite pouvoir associer chacun de mes boutons à n'importe quelle touche de mon clavier.
par la suite l'idée est de pouvoir stocker "la config" à chaque arrêt du arduino(mais ce n'est pas ma priorité:).

Bref j'ai essayé tout ce qui me venait par la tête mais j'en vient à la conclusion que cette fois-ci j'ai besoin de votre aide.

Si vous résolvez mon problème je vous en serez reconnaissant mais si quelqu'un peut m'expliquer où ma logique est rentrée en contradiction avec la logique "Arduino" cela serait vraiment apprécié.
Je précise que je ne m'y connais que depuis un peut plus d'une semaine mais je buche beaucoup sur Arduino.

Quoi que vous fassiez, je vous remercie d'avoir pris le temps de lire mon post!

Voici mon code de test :

Code: [Select]
#include <Keyboard.h>             //Importation de la bibliothèque "Keyboard"

const char axex = A1;             //Déclaration des broches
const char axey = A0;

const char sw = 6;
const char k4 = 5;
const char k3 = 4;
const char k2 = 3;
const char k1 = 2;

int sprint = KEY_LEFT_SHIFT;     //Touche spéciale

unsigned int axeX;               //Variables des axes de joystick
unsigned int axeY;

char touche[26];

int boutonK4;
int boutonK3;
int boutonK2;
int boutonK1;

int etat;

void setup() {
  pinMode(k1, INPUT_PULLUP);      //Assignation des broches
  pinMode(k2, INPUT_PULLUP);
  pinMode(k3, INPUT_PULLUP);
  pinMode(k4, INPUT_PULLUP);
  pinMode(sw, INPUT_PULLUP);

  pinMode(axex, INPUT);
  pinMode(axey, INPUT);

  digitalWrite(k1, HIGH);
  digitalWrite(k2, HIGH);
  digitalWrite(k3, HIGH);
  digitalWrite(k4, HIGH);
  digitalWrite(sw, HIGH);
 
  Serial.begin(9600);             //Connexion série
  Keyboard.begin();               //Ouverture du "système Keyboard"

  touche[0]='a';                  //Valeur du TABLLEAU touche
  touche[1]='b';
  touche[2]='c';
  touche[3]='d';
  touche[4]='e';
  touche[5]='f';
  touche[6]='g';
  touche[7]='h';
  touche[8]='i';
  touche[9]='j';
  touche[10]='k';
  touche[11]='l';
  touche[12]='m';
  touche[13]='n';
  touche[14]='o';
  touche[15]='p';
  touche[16]='q';
  touche[17]='r';
  touche[18]='s';
  touche[19]='t';
  touche[20]='u';
  touche[21]='v';
  touche[22]='w';
  touche[23]='x';
  touche[24]='y';
  touche[25]='z';
}


void loop() {
  axeX = analogRead(axex);        //Correspondance des variables des axes du joystick
  axeY = analogRead(axey);

//---------------------------------------------------CONFIG-------------------------------------------------------------//
if(Serial.available() > 0) {
             
  etat = Serial.read();

  Serial.println(etat);
 
  if(etat =="toto"){                         boutonK4 =  0; Serial.print("Bouton K 4 : touche A    "); Serial.println(boutonK4);}
  if(etat =='1' && '1' && '1' && '1' && '2'){boutonK4 = 25; Serial.print("Bouton K 4 : touche Z    "); Serial.println(boutonK4);}
  if(etat =='1' && '1' && '1' && '1' && '2'){boutonK4 = 18; Serial.print("Bouton K 4 : touche S    "); Serial.println(boutonK4);}
  if(etat =='1' && '1' && '1' && '1' && '3'){boutonK4 =  3; Serial.print("Bouton K 4 : touche D    "); Serial.println(boutonK4);}
  if(etat =='1' && '1' && '1' && '1' && '4'){boutonK4 = 16; Serial.print("Bouton K 4 : touche Q    "); Serial.println(boutonK4);}

  if(etat =='2' && '1' && '1' && '1' && '1'){boutonK3 = 25; Serial.print("Bouton K 4 : touche Z    "); Serial.println(boutonK4);}
  if(etat =='2' && '1' && '1' && '1' && '2'){boutonK3 = 18; Serial.print("Bouton K 4 : touche S    "); Serial.println(boutonK4);}
  if(etat =='2' && '1' && '1' && '1' && '3'){boutonK3 =  3; Serial.print("Bouton K 4 : touche D    "); Serial.println(boutonK4);}
  if(etat =='2' && '1' && '1' && '1' && '4'){boutonK3 = 16; Serial.print("Bouton K 4 : touche Q    "); Serial.println(boutonK4);}
}

//----------------------------------------------------------------------------------------------------------------//
  if(digitalRead(k4) == LOW){
    if(boutonK4 == 25){Keyboard.press(touche[26]);}
    if(boutonK4 == 18){Keyboard.press(touche[19]);}
    if(boutonK4 == 3){Keyboard.press(touche[4]);}
    if(boutonK4 == 16){Keyboard.press(touche[17]);} 
  }
  if(digitalRead(k3) == LOW){
    if(boutonK3 == 25){Keyboard.press(touche[26]);}
    if(boutonK3 == 18){Keyboard.press(touche[19]);}
    if(boutonK3 == 3){Keyboard.press(touche[4]);}
    if(boutonK3 == 16){Keyboard.press(touche[17]);}
  }
  else{Keyboard.releaseAll();}
}


8
Français / Re: HC-SR04 - Distance
Last post by derf911 - Today at 08:25 am
Bonjour,

On dirait que les pins ne sont pas soudées sur la carte. Est ce qu'elles sont affectivement bien soudées ?
Bonjour,

Je n'ai rien soudé. Je pensais qu'en utilisant une breadboard, ce n'était pas nécessaire.
Je pense que le problème vient de là. Si je joue un peu avec les fils, j'obtiens des valeurs, mais aléatoires et erronées :(
9
According to documentation: PWM: 2 to 13 and 44 to 46. Provide 8-bit PWM output with the analogWrite() function.-- that's off the site.
10
Hello Aussiewill

Hi

I HAD arrays to fill the switches, t variables etc. and that worked fine.
It is only when I tried to make a for loop to execute the routine at the end (everything AFTER the for in void loop() that I could not get anywhere.


I think that is ( was ?) false. Econjack is very OK.

Maybe (compiled but not tested) you could use something like :

Code: [Select]
//have 8 switches floating/pulled low to change point position

#include <Servo.h>
//#include <EEPROM.h>

Servo myservo[2]; // ---->>>  an array of servo

byte t[2];
byte x;
byte y;
byte val[2];                //these represent actual servo positions (either 80 or 100)
byte straight = 88;            //duration of the pulse to be sent if points are straight ahead
byte turn = 97;              //and if turning off


byte mySwitches[2] = {A0, A1};
byte led1 = 12;                 //2 LED pins for warning signals
byte led2 = 13;

void setup()
{
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
 
for (x=0;x<=1;x++)
  {
   pinMode(mySwitches[x], INPUT_PULLUP);
   myservo[x].attach(x-1);
   val[x] = straight;
   myservo[x].write(val[x]);
  } 
}

void loop()
{
  for (x=0;x<=1;x++)
  {
   Position_Servo(x);
  }
}
// *********************************************************************************
void Position_Servo( byte servo ) {
 
  //This is where it all goes wrong.
  // I have left 1 iteration of the original loop attached for vetting purposes
 
  t[servo] = digitalRead( mySwitches[servo] );
  if ((t[servo] == LOW) && (val[servo] == straight))    //A0 for in D2 for out
  {
    myservo[servo].write(turn);
    val[servo] = turn;                              // if switch doesn't agree with current setting tell servo to go to new position
  }
  if ((t[servo] == HIGH) && (val[servo] == turn))
  {
    myservo[servo].write (straight);
    val[servo] = straight;                          //and update val
  }
}


Regards,
bidouilleelec
Pages: [1] 2 3 ... 10