Go Down

Topic: no matching function for call to 'Keypad" (Read 971 times) previous topic - next topic

stribuda

salut , je vien d'acheter un clavier et une arduino , je compte les brancher ensemble , j'ai consulté le site arduino pour voir comment ecrire le programme , mais quand je vérifie avec l'application arduino il m'affiche : no matching function for call to 'Keypad::Keypad(char*, byte [4], byte [3], const byte&, const byte&)'
Le code est celui d'arduino c'est celui la :
Code: [Select]
#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 3; //four columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'#','0','*'}
};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {8, 7, 6}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );  // c'est ici qu'il y'a la faute

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

void loop(){
  char key = keypad.getKey();

  if (key != NO_KEY){
    Serial.println(key);
  }
}

PS : j'ai utilisé arduino 1.0 et 1.0.3
Aider moi s'il vous plait :)

fdufnews

Il te manque la librairie Keypad.
Il faudrait regarder là où tu as trouvé l'exemple de code, il doit y avoir un lien ou des infos supplémentaires pour récupérer cette librairie.

stribuda

J'ai déja instalé keypad 1.0 !
Aider moi

stribuda

J'ai ca aussi :
In file included from sketch_mar19a.cpp:1:
C:\Users\StribudA\Desktop\arduino-1.0.1\libraries\Keypad/Keypad.h:50: error: 'byte' does not name a type
C:\Users\StribudA\Desktop\arduino-1.0.1\libraries\Keypad/Keypad.h:51: error: 'byte' does not name a type
C:\Users\StribudA\Desktop\arduino-1.0.1\libraries\Keypad/Keypad.h:63: error: 'byte' has not been declared
C:\Users\StribudA\Desktop\arduino-1.0.1\libraries\Keypad/Keypad.h:63: error: 'byte' has not been declared
C:\Users\StribudA\Desktop\arduino-1.0.1\libraries\Keypad/Keypad.h:63: error: 'byte' has not been declared
C:\Users\StribudA\Desktop\arduino-1.0.1\libraries\Keypad/Keypad.h:63: error: 'byte' has not been declared
C:\Users\StribudA\Desktop\arduino-1.0.1\libraries\Keypad/Keypad.h:78: error: ISO C++ forbids declaration of 'byte' with no type
C:\Users\StribudA\Desktop\arduino-1.0.1\libraries\Keypad/Keypad.h:78: error: expected ';' before '*' token
C:\Users\StribudA\Desktop\arduino-1.0.1\libraries\Keypad/Keypad.h:79: error: ISO C++ forbids declaration of 'byte' with no type
C:\Users\StribudA\Desktop\arduino-1.0.1\libraries\Keypad/Keypad.h:79: error: expected ';' before '*' token

SMarty

Tu codes en C++ ? Sur quel IDE ?
Sur IDE Arduino je ne sais pas comment intégrer du C++

fdufnews

Je pencherais pour une incompatibilité de version entre la librairie et l'IDE utilisé.
La librairie doit être développé pour un IDE d'ancienne génération avant la 1.0.

Regardes les sources de la librairie. Si elle n'est pas trop complexe peut être que le remplacement de
#include "WProgram.h"
par
#include <Arduino.h>
pourrait régler le problème.

Ou alors, tu pourrais essayer d'installer la version 0.23 de l'IDE.

stribuda

J'ai téléchargé 0.23 , ça marche , la compilation est complète sans erreur mais le problème c'est que si je veux utiliser arduino leonardo et un clavier , je pourrai pas a programmer :s
Merci de m'aider

skywodd

Bonjour,

Regarde ce que t'as dit fdufnews.
Tu doit avoir un "WProgram.h" quelque pars à remplacer par "Arduino.h" ;)
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Go Up