wie kan helpen examenopdracht vending machine
5 berichten
• Pagina 1 van 1
wie kan helpen examenopdracht vending machine
Wie kan mij helpen? Voor mijn examen techniek wil ik een vending machine maken. Nu heb ik een codering, maar deze geeft foutmelding aan in sketch. Ik weet er eigenlijk te weinig vanaf om dit op te lossen. Graag heb ik hulp.
#include <Servo.h>
#include <SPI.h>
#include <MFRC522.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo servo;
int a, b, c, d ;
void setup() {
Serial .begin(9600);
SPI .begin();
lcd.begin();
pinMode(OUTPUT , 5);
pinMode(OUTPUT , 6);
pinMode(OUTPUT , 7);
pinMode(OUTPUT , 8);
mfrc522.PCD_Init();
lcd.print(" Press Buttion");
}
void loop() {
lcd.clear();
lcd.print(" Press Button");
a = digitalRead(5);
b = digitalRead(6);
c = digitalRead(7);
d = digitalRead(8);
Serial .print(a);
Serial .print(b);
Serial .print(c);
Serial .print(d);
//////////////////////////////////////a////////////////////////////////
if( a== 0)
{
lcd.clear();
lcd.print(" 5$ ");
lcd.print(" give me your card");
delay(3000);
if( ! mfrc522.PICC_IsNewCardPresent ())
{
return;
}
if(! mfrc522.PICC_ReadCardSerial ())
{
return;
}
Serial .print ( "UID tag : ");
String content ="";
byte letter;
for(byte i=0; i<mfrc522.uid.size; ++i)
{
Serial .print (mfrc522.uid.uidByte[ i ] < 0x10 ? " 0" : " ");
Serial .print (mfrc522.uid.uidByte[ i ], HEX);
content .concat (String(mfrc522.uid.uidByte[ i ] < 0x10 ? " 0" : " "));
content .concat (String(mfrc522.uid.uidByte[ i ], HEX));
}
Serial .println ();
Serial .print ("Message : ");
content . toUpperCase();
if ( content .substring(1) == "2B 3C C9 23")
{
servo.attach(1);
servo.write(80);
delay(2000);
servo.detach();
delay(2000);
lcd.clear();
lcd.print(" Take the products");
delay(5000);
}
}
if (a==0)
if (! mfrc522.PICC_ReadCardSerial ())
{
return;
}
Serial .print ( "UID tag : ");
String content ="";
byte letter;
for(byte i=0; i<mfrc522.uid.size; ++i)
{
Serial .print (mfrc522.uid.uidByte[ i ] < 0x10 ? " 0" : " ");
Serial .print (mfrc522.uid.uidByte[ i ], HEX);
content .concat (String(mfrc522.uid.uidByte[ i ] < 0x10 ? " 0" : " "));
content .concat (String(mfrc522.uid.uidByte[ i ], HEX));
}
Serial.println();
Serial .print ("Message : ");
content . toUpperCase();
if ( content .substring( 1 ) == "2B 3C C9 23")
{
servo.attach(2);
servo.write(80);
delay(2000);
servo . detach();
delay(2000);
lcd.clear();
lcd.print(" Take the products");
delay(5000);
}
}
if(b==0)
{
If (! mfrc522.PICC_ReadCardSerial ())
{
return;
}
Serial .print ( "UID tag : ");
String content ="";
Byte letter;
for(byte i=0; i<mfrc522.uid.Size; ++i)
{
Serial .print (mfrc522.uid.uidByte[ i ] < 0x10 ? " 0" : " ");
Serial .print (mfrc522.uid.uidByte[ i ], HEX);
content .concat (String(mfrc522.uid.uidByte[ i ] < 0x10 ? " 0" : " "));
content .concat (String(mfrc522.uid.uidByte[ i ], HEX));
}
Serial .print ;()in
Serial .print ("Message : ");
content . toUpperCase();
if ( content .substring( 1 ) == "2B 3C C9 23")
{
servo.attach(3);
servo.write(80);
delay(2000);
servo . detach();
delay(2000);
lcd.clear();
lcd.print(" Take The Products");
delay(5000);
}
}
///////////////////////////d///////////////////////////////////
if (d==0)
If (! mfrc522.PICC_ReadCardSerial ())
{
return;
}
Serial .print ( "UID tag : ");
String content ="";
Byte letter;
for(byte i=0; i<mfrc522.uid.Size; ++i)
{
Serial .print (mfrc522.uid.uidByte[ i ] < 0x10 ? " 0" : " ");
Serial .print (mfrc522.uid.uidByte[ i ], HEX);
content .concat (String(mfrc522.uid.uidByte[ i ] < 0x10 ? " 0" : " "));
content .concat (String(mfrc522.uid.uidByte[ i ], HEX));
}
Serial .print ;()in
Serial .print ("Message : ");
content . toUpperCase();
if (content.substring(1) == "2B 3C C9 23")
{
servo.attach(4);
servo.write(80);
delay(2000);
servo . detach();
delay(2000);
lcd.clear();
lcd.print(" Take The Products");
delay(5000);
}
}
delay(100);
Bij deze geeft hij elke keer een fout melding if (content.substring(1) == "2B 3C C9 23").
Kan iemand mij helpen.
Ik hoor het graag.
Gr Fabian
#include <Servo.h>
#include <SPI.h>
#include <MFRC522.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo servo;
int a, b, c, d ;
void setup() {
Serial .begin(9600);
SPI .begin();
lcd.begin();
pinMode(OUTPUT , 5);
pinMode(OUTPUT , 6);
pinMode(OUTPUT , 7);
pinMode(OUTPUT , 8);
mfrc522.PCD_Init();
lcd.print(" Press Buttion");
}
void loop() {
lcd.clear();
lcd.print(" Press Button");
a = digitalRead(5);
b = digitalRead(6);
c = digitalRead(7);
d = digitalRead(8);
Serial .print(a);
Serial .print(b);
Serial .print(c);
Serial .print(d);
//////////////////////////////////////a////////////////////////////////
if( a== 0)
{
lcd.clear();
lcd.print(" 5$ ");
lcd.print(" give me your card");
delay(3000);
if( ! mfrc522.PICC_IsNewCardPresent ())
{
return;
}
if(! mfrc522.PICC_ReadCardSerial ())
{
return;
}
Serial .print ( "UID tag : ");
String content ="";
byte letter;
for(byte i=0; i<mfrc522.uid.size; ++i)
{
Serial .print (mfrc522.uid.uidByte[ i ] < 0x10 ? " 0" : " ");
Serial .print (mfrc522.uid.uidByte[ i ], HEX);
content .concat (String(mfrc522.uid.uidByte[ i ] < 0x10 ? " 0" : " "));
content .concat (String(mfrc522.uid.uidByte[ i ], HEX));
}
Serial .println ();
Serial .print ("Message : ");
content . toUpperCase();
if ( content .substring(1) == "2B 3C C9 23")
{
servo.attach(1);
servo.write(80);
delay(2000);
servo.detach();
delay(2000);
lcd.clear();
lcd.print(" Take the products");
delay(5000);
}
}
if (a==0)
if (! mfrc522.PICC_ReadCardSerial ())
{
return;
}
Serial .print ( "UID tag : ");
String content ="";
byte letter;
for(byte i=0; i<mfrc522.uid.size; ++i)
{
Serial .print (mfrc522.uid.uidByte[ i ] < 0x10 ? " 0" : " ");
Serial .print (mfrc522.uid.uidByte[ i ], HEX);
content .concat (String(mfrc522.uid.uidByte[ i ] < 0x10 ? " 0" : " "));
content .concat (String(mfrc522.uid.uidByte[ i ], HEX));
}
Serial.println();
Serial .print ("Message : ");
content . toUpperCase();
if ( content .substring( 1 ) == "2B 3C C9 23")
{
servo.attach(2);
servo.write(80);
delay(2000);
servo . detach();
delay(2000);
lcd.clear();
lcd.print(" Take the products");
delay(5000);
}
}
if(b==0)
{
If (! mfrc522.PICC_ReadCardSerial ())
{
return;
}
Serial .print ( "UID tag : ");
String content ="";
Byte letter;
for(byte i=0; i<mfrc522.uid.Size; ++i)
{
Serial .print (mfrc522.uid.uidByte[ i ] < 0x10 ? " 0" : " ");
Serial .print (mfrc522.uid.uidByte[ i ], HEX);
content .concat (String(mfrc522.uid.uidByte[ i ] < 0x10 ? " 0" : " "));
content .concat (String(mfrc522.uid.uidByte[ i ], HEX));
}
Serial .print ;()in
Serial .print ("Message : ");
content . toUpperCase();
if ( content .substring( 1 ) == "2B 3C C9 23")
{
servo.attach(3);
servo.write(80);
delay(2000);
servo . detach();
delay(2000);
lcd.clear();
lcd.print(" Take The Products");
delay(5000);
}
}
///////////////////////////d///////////////////////////////////
if (d==0)
If (! mfrc522.PICC_ReadCardSerial ())
{
return;
}
Serial .print ( "UID tag : ");
String content ="";
Byte letter;
for(byte i=0; i<mfrc522.uid.Size; ++i)
{
Serial .print (mfrc522.uid.uidByte[ i ] < 0x10 ? " 0" : " ");
Serial .print (mfrc522.uid.uidByte[ i ], HEX);
content .concat (String(mfrc522.uid.uidByte[ i ] < 0x10 ? " 0" : " "));
content .concat (String(mfrc522.uid.uidByte[ i ], HEX));
}
Serial .print ;()in
Serial .print ("Message : ");
content . toUpperCase();
if (content.substring(1) == "2B 3C C9 23")
{
servo.attach(4);
servo.write(80);
delay(2000);
servo . detach();
delay(2000);
lcd.clear();
lcd.print(" Take The Products");
delay(5000);
}
}
delay(100);
Bij deze geeft hij elke keer een fout melding if (content.substring(1) == "2B 3C C9 23").
Kan iemand mij helpen.
Ik hoor het graag.
Gr Fabian
Advertisement
Re: wie kan helpen examenopdracht vending machine
hey Fabber...
Ik zie meerdere dingen...
Eerst je zet pinnen als outputs en daarna ga je ze lezen dat gaat niet.
Verder maak je kwistig gebruik van delays...
Delays moet je Nooit en ik bedoel echt nooit gebruiken....mee eens in de voorbeelden van arduino staan ze vaak maar dat zijn voorbeelden om iets duidelijk te maken en geen functionele programma's.
Die card readers zijn echt 3.3V beste geef je ze een eigen AMS1117-3.3 dus eigen voeding..bij mij loste dat veel problemen op met die dingen
Idem voor die servo gewoon een eigen 7805 voor die 5V
Die concat? Ik gebruik ze nooit maar is dat niet voor teksten? die cardreader geeft bytes...
Verder een tip, maak de delen van de sketch afzonderlijk, dus krijg eerst die display aan de gang, dan de servo. Dan de drukknoppen en dan zien of ze willen 'samen' werken...
Die drukknoppen moet je echt iets voor debouncing doen want zo werken ze niet, ik doe dat altijd door ze te scannen, dus 1x in de 20milliseconde ofzo efkens de stand meten. kan 1 voor 1 maar vast maak je indruk in de klas als je dit voor 1 port (bv.portC pinnen A0~A5) in een keer doet....
Succes....
Rob
Ik zie meerdere dingen...
Eerst je zet pinnen als outputs en daarna ga je ze lezen dat gaat niet.
Verder maak je kwistig gebruik van delays...
Delays moet je Nooit en ik bedoel echt nooit gebruiken....mee eens in de voorbeelden van arduino staan ze vaak maar dat zijn voorbeelden om iets duidelijk te maken en geen functionele programma's.
Die card readers zijn echt 3.3V beste geef je ze een eigen AMS1117-3.3 dus eigen voeding..bij mij loste dat veel problemen op met die dingen
Idem voor die servo gewoon een eigen 7805 voor die 5V
Die concat? Ik gebruik ze nooit maar is dat niet voor teksten? die cardreader geeft bytes...
Verder een tip, maak de delen van de sketch afzonderlijk, dus krijg eerst die display aan de gang, dan de servo. Dan de drukknoppen en dan zien of ze willen 'samen' werken...
Die drukknoppen moet je echt iets voor debouncing doen want zo werken ze niet, ik doe dat altijd door ze te scannen, dus 1x in de 20milliseconde ofzo efkens de stand meten. kan 1 voor 1 maar vast maak je indruk in de klas als je dit voor 1 port (bv.portC pinnen A0~A5) in een keer doet....
Succes....
Rob
Re: wie kan helpen examenopdracht vending machine
Ik vind de declaratie van de pincode ook vreemd.
pinMode(5, OUTPUT) is de normale declaratie.
De hier gebruikte omgekeerde versie ken ik niet.
pinMode(5, OUTPUT) is de normale declaratie.
De hier gebruikte omgekeerde versie ken ik niet.
- FonzieBonzo
- Berichten: 118
- Geregistreerd: 01 Okt 2015, 11:54
- Woonplaats: Castricum
Re: wie kan helpen examenopdracht vending machine
Twee regels boven "if (content.substring(1) == "2B 3C C9 23")" staat :
Serial.print ;()in
ik denk dat hier het volgende moet staan :
Serial.println();
Gr,
Fonzie
Serial.print ;()in
ik denk dat hier het volgende moet staan :
Serial.println();
Gr,
Fonzie
Re: wie kan helpen examenopdracht vending machine
je gebruikt content ? is dat een deel van een functie of een library?
dan zul je dat wel moeten aangeven.
dan zul je dat wel moeten aangeven.
paul deelen
shooter@home.nl
shooter@home.nl
5 berichten
• Pagina 1 van 1
Terug naar Afgeronde projecten
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast