Nee, aan de code van de docent lag het niet maar zoals racemaniac ook zei, echt mooie code was dat ook niet.
En inderdaad bedankt voor het delen van enige informatie of ook maar eits doen met opmerkingen of aanwijzingen van ons. Als je dat in je verdere leven blijft dien wens ik je nog veel succes
(En arme docent. Dan snap ik wel dat het na twee jaar nog niet lukt.)
En dan je posts aanpassen en de code eruit halen is het toppunt van onbeschoftheid! Puur om het weer iets compleet te maken hierbij de code uit het start topic:
/*
Toegangscontrole "minimaal" groj03/20150525
4-cijferige toegangscode met Arduino
Pin 12 is verbonden met actuator / elektrisch slot
10 geldige toegangscodes programmeerbaar
Programmeren:
1. Houd button ingedrukt en druk op reset-knopje van Arduino
2. (LED=paars) Selekteer geheugenplaats [0..9]
3. (LED=blauw) voer nieuwe 4-cijferige toegangscode in (LED=geel)
4. (LED=rood) wacht op toegangscode..
Bij juiste toegangscode LED=groen.
*/
#include <EEPROM.h>
#include <Keypad.h>
const byte ROWS=4, COLS=3;
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 );
byte roodPin = 9; // rgb led, 270R tussen pin en kathode
byte groenPin = 10; // rgb led, 270R tussen pin en kathode
byte blauwPin = 11; // rgb led, 270R tussen pin en kathode
// rgb led common anode naar +5V
byte unlockPin = 12; // naar actuator/relais elektrisch slot
byte led = 13;
unsigned long invoer;
void setup()
{
pinMode(roodPin ,OUTPUT);
pinMode(groenPin ,OUTPUT);
pinMode(blauwPin ,OUTPUT);
pinMode(unlockPin,OUTPUT);
pinMode(led ,OUTPUT);
pinMode(A0, INPUT_PULLUP); // maakcontact tussen arduino A0 pin en GND
if (analogRead(A0)<512) instellen(); // nieuwe code instellen: button ingedrukt houden en arduino resetten
}
// lees_keypad() returnwaarde is van type long int
// lees_eeprom(<index>) returnwaarde is van type long int, <index> is van type unsigned int
// schrijf_eeprom(<index>,<getal>) <getal> is van type long int, <index> is van type unsigned int
// openen() deuropener
// rgb(<waarde>) RGB-led krijgt kleur volgens <waarde> (weerstand kleurcode)
// instellen() toegangscodes wijzigen
void loop()
{
rgb(2);
invoer=lees_keypad(); // bij timeout geeft lees_keypad() returnwaarde=10000
if (invoer<10000)
{
for (int j=0; j<10; j++)
{
if (invoer==lees_eeprom(j)) { openen(); break; }
}
}
}
void schrijf_eeprom(unsigned int i, unsigned long getal)
{
EEPROM.write((2*i ),getal/100);
EEPROM.write((2*i+1),getal%100);
}
unsigned long lees_eeprom(unsigned int i)
{
return (100*EEPROM.read(2*i)+EEPROM.read(2*i+1));
}
unsigned long lees_keypad()
{
char key;
unsigned long getal=0;
unsigned long tijd;
unsigned int timeout=2000;
for (byte j=0; j<4; j++)
{
tijd=millis();
do
{
key=keypad.getKey();
if ((j>0) & (millis()>(tijd+timeout))) return(10000);
} while ((!key) || (key=='*') || (key=='#'));
rgb(4);
getal=10*getal+key-'0';
}
return(getal);
}
void rgb(byte i)
{
byte rood,groen,blauw;
switch (i)
{
case 0: { rood= 0; groen= 0; blauw= 0; break; } // zwart
case 2: { rood=255; groen= 0; blauw= 0; break; } // rood
case 3: { rood=180; groen= 35; blauw= 0; break; } // oranje
case 4: { rood=127; groen= 90; blauw= 0; break; } // geel
case 5: { rood= 0; groen=255; blauw= 0; break; } // groen
case 6: { rood= 0; groen= 0; blauw=255; break; } // blauw
case 7: { rood=127; groen= 0; blauw=127; break; } // paars
case 9: { rood=127; groen=127; blauw=127; break; } // wit
default: { rood= 0; groen= 0; blauw= 0; break; } // zwart
}
analogWrite(roodPin, 255-rood );
analogWrite(groenPin,255-groen);
analogWrite(blauwPin,255-blauw);
}
void openen()
{
rgb(5);
digitalWrite(unlockPin,HIGH); digitalWrite(led,HIGH);
delay(1500);
digitalWrite(unlockPin,LOW); digitalWrite(led,LOW);
}
void instellen()
{
char key;
rgb(7);
do key=keypad.getKey(); while (!key);
rgb(6);
if ((key>='0')&(key<='9'))
{
schrijf_eeprom((key-'0'),lees_keypad());
}
}