Sinds kort deze fout

Arduino specifieke Software
Berichten: 63
Geregistreerd: 09 Jun 2017, 01:59
Woonplaats: Fiji

Sinds kort deze fout

Berichtdoor Dino » 18 Okt 2019, 13:31

'makeKeypad' was not declared in this scope

het lijkt er op dat er iets is veranderd in de library.
of zie ik dit verkeerd en wat moet ik veranderen zodat het weer werkt
ps deze script die ik gebruik werkte altijd, maar heb een scripje gedownload en sinds dien deze fout

Advertisement

Gebruikers-avatar
Berichten: 241
Geregistreerd: 22 Jan 2013, 16:40

Re: Sinds kort deze fout

Berichtdoor zuid » 18 Okt 2019, 16:38

Informatie te bepekt om een inhoudelijk antwoord te geven

Berichten: 63
Geregistreerd: 09 Jun 2017, 01:59
Woonplaats: Fiji

Re: Sinds kort deze fout

Berichtdoor Dino » 18 Okt 2019, 17:08

deze meldingen krijg ik nu
[code][/code]

Wire_Cutting_Sequence:55: error: 'makeKeymap' was not declared in this scope
Wire_Cutting_Sequence.ino: In function 'void setup()':
Wire_Cutting_Sequence:86: error: 'class LiquidCrystal_I2C' has no member named 'init'
Wire_Cutting_Sequence:100: error: 'NO_KEY' was not declared in this scope
Wire_Cutting_Sequence.ino: In function 'void loop()':
Wire_Cutting_Sequence:168: error: 'NO_KEY' was not declared in this scope
Wire_Cutting_Sequence.ino: In function 'void loopLicht()':
Wire_Cutting_Sequence:358: error: invalid conversion from 'void (*)()' to 'long unsigned int'
Wire_Cutting_Sequence:358: error: initializing argument 1 of 'void delay(long unsigned int)'
Wire_Cutting_Sequence:364: error: invalid conversion from 'void (*)()' to 'long unsigned int'
Wire_Cutting_Sequence:364: error: initializing argument 1 of 'void delay(long unsigned int)'

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Sinds kort deze fout

Berichtdoor Koepel » 18 Okt 2019, 23:41

Voor ons is het eenvoudiger als je de sketch laat zien, en als je bij voorkeuren de uitgebreide compiler uitvoer aan zet, en dan alles kopieert van de uitvoer (in het onderste deel van de Arduino IDE).

Als je een library gebruikt, dan is het nodig die library te installeren. Dan kan op vele manieren. Het eenvoudigste is de "Bibliotheek Beheer" binnen de Arduino IDE.
menu: Schets / Bibliotheek gebruiken / Bibliotheken beheren ... / Bibliotheek Beheer.

Daar zijn niet alle libraries te vinden. Soms is het nodig om op Github een ZIP-bestand te downloaden, en dat ZIP-bestand in de Arduino IDE binnenhalen als library.

Het is ook nog nodig om de juiste library te installeren. Voor de I2C LCD displays zijn er meerdere.
Deze heeft lcd.init(): https://github.com/johnrickman/LiquidCrystal_I2C/blob/master/examples/HelloWorld/HelloWorld.pde.
Deze heeft lcd.begin(): https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library/blob/master/examples/HelloWorld/HelloWorld.ino.

De makeKeymap() hoort bij deze library: https://github.com/Chris--A/Keypad/blob/master/src/Keypad.h.

Berichten: 63
Geregistreerd: 09 Jun 2017, 01:59
Woonplaats: Fiji

Re: Sinds kort deze fout

Berichtdoor Dino » 19 Okt 2019, 16:51

Code: Alles selecteren
#include <Keypad_I2C.h>
int adress = 0x3f;
const byte ROWS = 4; //four rows
const byte COLS = 3; //three 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_I2C keypad = Keypad_I2C( makeKeymap(keys), rowPins, colPins, ROWS, COLS,adress );
byte ledPin = 13;

boolean blink = false;
boolean ledPin_state;

void setup(){
    Serial.begin(9600);
    pinMode(ledPin, OUTPUT);              // Sets the digital pin as output.
    digitalWrite(ledPin, HIGH);           // Turn the LED on.
    ledPin_state = digitalRead(ledPin);   // Store initial LED state. HIGH when LED is on.
    keypad.addEventListener(keypadEvent); // Add an event listener for this keypad
}

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

    if (key) {
        Serial.println(key);
    }
    if (blink){
        digitalWrite(ledPin,!digitalRead(ledPin));    // Change the ledPin from Hi2Lo or Lo2Hi.
        delay(100);
    }
}

// Taking care of some special events.
void keypadEvent(KeypadEvent key){
    switch (keypad.getState()){
    case PRESSED:
        if (key == '#') {
            digitalWrite(ledPin,!digitalRead(ledPin));
            ledPin_state = digitalRead(ledPin);        // Remember LED state, lit or unlit.
        }
        break;

    case RELEASED:
        if (key == '*') {
            digitalWrite(ledPin,ledPin_state);    // Restore LED state from before it started blinking.
            blink = false;
        }
        break;

    case HOLD:
        if (key == '*') {
            blink = true;    // Blink the LED when holding the * key.
        }
        break;
    }
}



en dan komt deze melding


EventKeypad:24:33: error: 'makeKeymap' was not declared in this scope

Keypad_I2C keypad = Keypad_I2C( makeKeymap(keys), rowPins, colPins, ROWS, COLS,adress );

^~~~~~~~~~

EventKeypad:51:18: error: variable or field 'keypadEvent' declared void

void keypadEvent(KeypadEvent key){

^~~~~~~~~~~

EventKeypad:51:18: error: 'KeypadEvent' was not declared in this scope

D:\libraries\libraries\Keypad-3.1.0\examples\EventKeypad\EventKeypad.ino:51:18: note: suggested alternative: 'Keypad_I2C'

void keypadEvent(KeypadEvent key){

^~~~~~~~~~~

Keypad_I2C

D:\libraries\libraries\Keypad-3.1.0\examples\EventKeypad\EventKeypad.ino: In function 'void setup()':

EventKeypad:35:12: error: 'class Keypad_I2C' has no member named 'addEventListener'

keypad.addEventListener(keypadEvent); // Add an event listener for this keypad

^~~~~~~~~~~~~~~~

EventKeypad:35:29: error: 'keypadEvent' was not declared in this scope

keypad.addEventListener(keypadEvent); // Add an event listener for this keypad

^~~~~~~~~~~

D:\libraries\libraries\Keypad-3.1.0\examples\EventKeypad\EventKeypad.ino:35:29: note: suggested alternative: 'keypad'

keypad.addEventListener(keypadEvent); // Add an event listener for this keypad

^~~~~~~~~~~

keypad

D:\libraries\libraries\Keypad-3.1.0\examples\EventKeypad\EventKeypad.ino: At global scope:

EventKeypad:51:18: error: variable or field 'keypadEvent' declared void

void keypadEvent(KeypadEvent key){

^~~~~~~~~~~

EventKeypad:51:18: error: 'KeypadEvent' was not declared in this scope

D:\libraries\libraries\Keypad-3.1.0\examples\EventKeypad\EventKeypad.ino:51:18: note: suggested alternative: 'Keypad_I2C'

void keypadEvent(KeypadEvent key){

^~~~~~~~~~~

Keypad_I2C

Meerdere bibliotheken gevonden voor "Keypad_I2C.h"
Gebruikt: C:\Users\Dino\Documents\Arduino\libraries\Keypad_I2C-master
Meerdere bibliotheken gevonden voor "Wire.h"
Gebruikt: C:\Program
exit status 1
'makeKeymap' was not declared in this scope

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: Sinds kort deze fout

Berichtdoor Gij Kieken » 19 Okt 2019, 17:15

En als je nu bij de declaraties #include <Keypad.h> toevoegt.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Sinds kort deze fout

Berichtdoor shooter » 19 Okt 2019, 17:43

je hebt ergens keypad dubbel staan, zorg dat er maar een include in je library staat, en dan moet je ook nog zorgen dat eht de goede is. Heet software onderhoud.
paul deelen
shooter@home.nl

Berichten: 63
Geregistreerd: 09 Jun 2017, 01:59
Woonplaats: Fiji

Re: Sinds kort deze fout

Berichtdoor Dino » 20 Okt 2019, 10:11

Tot nu toe nog geen antwoord die lijdt tot een oplossing.
Let wel het werkt al lang goed en ineens was over nu zelfs mijn laptop schoon gemaakt windows opnieuw geinstalleert.
Arduino software geinstalleerd en getest en zelfde fout is er weer.
Wat ik ook doe werkt niet.

Gebruikers-avatar
Berichten: 241
Geregistreerd: 22 Jan 2013, 16:40

Re: Sinds kort deze fout

Berichtdoor zuid » 20 Okt 2019, 12:08

Zit er nog iets in je prullenbak?
Ik denk dat er in de foutmelding nog wat regels meer zijn.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Sinds kort deze fout

Berichtdoor Koepel » 20 Okt 2019, 12:20

Dan heb je je eigen sketches (met de "libraries" map) misschien weer terug gezet, of weer de verkeerde libraries geïnstalleerd of weer het verkeerde voorbeeld dat niet bij de libraries past geïnstalleerd, of je doet dezelfde handeling.

Het is natuurlijk ook mogelijk dat de library zelf niet goed is, maar die kans lijkt me niet zo groot.

Jouw eigen sketches staat meestal in: Documents\Arduino.
Daar staan ook de libraries die je zelf download in de map: Documents\Arduino\libraries

Kijk of daar dingen dubbel in staan. Ik zou daar alle "keypad" libraries verwijderen en dan vanuit de Arduino IDE opnieuw downloaden.

Ik zit een beetje met mijn handen in mijn haar, omdat ik bijna niets weet. Hou je vast, hier komen de vragen:
Kun je een lijst geven van je Documents\Arduino\libraries map ? Kun je vertellen welke keypad libraries je hebt geïnstalleerd ? Kun je beschrijven hoe je ze hebt geïnstalleerd, en welke versie, en waar vandaan. Welk voorbeeld heb je vervolgens gebruikt ? En waar komt dat voorbeeld vandaan ? Als je de compiler uitvoer laat zien, dan graag de uitgebreide uitvoer en alles laten zien. Waarom heb je sommige dingen op de D: drive staan ? Daar kon de Arduino IDE vroeger niet goed mee omgaan, misschien is dat nog steeds een probleem. Heb je wel eens iets veranderd aan de installatie op C:\Program Files (x86)\Arduino ? Sommigen zetten daar een library neer, maar dat is niet de bedoeling. Dit is heel raar: D:\libraries\libraries. Heb je de Arduino bestanden in D:\libraries\ staan ? Staan daar ook jouw sketches ?

Volgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 22 gasten