Hallo
ich bin neu auf dieser Plattform und habe ein Problem:
ich muss für meine Schule eine Abschlussarbeit machen (eine mechanische dosenpresse mit integriertem lcd Display) welches über ein arduino bzw. elegoo Board programmiert wird dieses Board dient zur Motivation diese Presse zu verwenden das lcd Display spuckt per Knopfdruck Sprüche wie Toll gemacht, Gratulation etc. aus so weit bin ich.
Jetzt würde ich noch gerne einen Stückzahler einbauen der die Dosen zählt wie viele schon gepresst worden sind
wäre nett wenn mir wer helfenkann
anbei der code und Bilder von der Steuerung
Lg David
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
char *players[]={
"Gut gemacht",
"Muskelpaket",
"Gratulation",
"Dosenprofi",
"Super!",
"Grossartig",
"Spitze",
"Pressmeister",
"Superman",
"TipTop",
};
long player;
int val1 = 0;
int BUTTON1 = 13;
void setup() {
lcd.begin(16, 2);
lcd.print("Dose einlegen!!!");
pinMode(BUTTON1,INPUT);
}
void loop() {
//lcd.setCursor(0,1);
//lcd.print(analogRead(0));
val1 = digitalRead(BUTTON1);
unsigned long seed=seedOut(50);
randomSeed(seed);
if (val1 == HIGH) {
for (int i=0;i<1;++i) {
player = (random(sizeof(players)/sizeof(char*)));
lcd.setCursor(0, 0);
lcd.print(players[player]);
delay(5000);
lcd.clear();
//lcd.print("Betätige den Hebel");
// break;
//lcd.clear();
}
}
else
{
return;
}
}
unsigned int bitOut(void) {
static unsigned long firstTime=1, prev=0;
unsigned long bit1=0, bit0=0, x=0, port=0, limit=10;
if (firstTime) {
firstTime=0;
prev=analogRead(port);
}
while (limit--) {
x=analogRead(port);
bit1=(prev!=x?1:0);
prev=x;
x=analogRead(port);
bit0=(prev!=x?1:0);
prev=x;
if (bit1!=bit0)
break;
}
return bit1;
}
unsigned long seedOut(unsigned int noOfBits) {
unsigned long seed=0;
for (int i=0;i<noOfBits;++i)
seed = (seed<<1) | bitOut();
return seed;
}