wie kan helpen examenopdracht vending machine

Toon hier Uw afgeronde projecten aan anderen.
Berichten: 1
Geregistreerd: 17 Mrt 2022, 12:46

wie kan helpen examenopdracht vending machine

Berichtdoor FABBER » 17 Mrt 2022, 23:35

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

Advertisement

Berichten: 68
Geregistreerd: 04 Sep 2021, 08:31

Re: wie kan helpen examenopdracht vending machine

Berichtdoor RobGood » 18 Mrt 2022, 13:57

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

Berichten: 77
Geregistreerd: 06 Okt 2012, 10:57

Re: wie kan helpen examenopdracht vending machine

Berichtdoor Beamer » 18 Mrt 2022, 17:23

Ik vind de declaratie van de pincode ook vreemd.
pinMode(5, OUTPUT) is de normale declaratie.
De hier gebruikte omgekeerde versie ken ik niet.

Gebruikers-avatar
Berichten: 118
Geregistreerd: 01 Okt 2015, 11:54
Woonplaats: Castricum

Re: wie kan helpen examenopdracht vending machine

Berichtdoor FonzieBonzo » 18 Mrt 2022, 22:37

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

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

Re: wie kan helpen examenopdracht vending machine

Berichtdoor shooter » 20 Mrt 2022, 21:22

je gebruikt content ? is dat een deel van een functie of een library?
dan zul je dat wel moeten aangeven.
paul deelen
shooter@home.nl

Terug naar Afgeronde projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 3 gasten