Eigentlich ganz einfach für euch bestimmt, aber für mich nicht, der nicht viel mit dem Mikrocontroller zu tun hat. Ich bin dabei es zu lernen, aber da die Lichtschranke wohl kein genaues Signal herausgibt, brauche ich eure Hilfe.
Projektbeschreibung:
ich hab vor eine Überwachung zu erstellen für Metallkugeln, die dann in eine Fabrik laufen und anschließend unter der Modellplatte in einen Sack fallen.
Da die Kugeln sich leider häufen und eine Verstopfung geben, brauche ich eine kleine Überwachung.
Material:
Kugeln = 4 mm Durchmesser +/- 0,02 mm
Rohrdurchmesser 6 mm
Stromversorgung des Systems 9V Blockbatterie
(10 mm Lichtschranke reicht)
(Bauteile, Arduino möchte ich euch gerne offen lassen, was am besten passt, macht mir Vorschläge)
Funktionsbeschreibung:
Die Kugeln werden durch das Magazin (Rohr) geschoben und sollen dann von der Lichtschranke erfasst werden. Die Lichtschranke gibt dann eine Meldung an den LCD, der dann per Counter die Kugeln zählt. In der ersten Zeile sollte (so fern es klappt) einen Timer (HH-mm-SS) der dann hochzählt. Sollte der nächste Zug Kugeln liefern, soll per Button der Timer und der Counter zurückgestellt werden.
Ich bedanke mich recht herzlich bei euch,
liebe Grüße LWA-Tech
Genaures Signal gibt es nicht ... okay daas ist schonmal sehr gut zu wissen da ich meine gelesen zu haben, dass es unsaubere signale geben könnte.
9V BB geht nicht ? okay dann muss halt die Powerbank her, das passt aber auch unter die Modellbauplatte.
Da ist Abstand zwischen, da der "Kugellift" nur jede 2. Kugel erfasst wie schnell die kugeln da durch rutschen ist doch letzendlich egal oder gibt es grenzen bei der Lichtschranke ?
Tatsächlich keine Fortsetzung sondern ein eigener Arduino mit eigenem System und nicht an dem Code mit angeschlossen, der Code und die Ladeeinheit funktioniert ohne Probleme. Nur möchte ich gerne eine Überwachung für das System bzw für die Fabrik haben.
Das Problem konnte ich schon selber lösen ... ist der einfülltrichter der dann irgendwann nichtmehr das Mitnehmerrad für die kugeln befüllt, durch ein kleines Zahnrad und einen kleinen Spielzeugmotor konnte ich das feeding problem ohne weiteres lösen, so werden die kugeln immermal berührt und sie rutschen nach.
Kann mir jemand so einen code zeigen wo eine Lichtschranke und ein LCD vorhanden ist den knopf zum zurückstellen des counters sollte ich wohl hinkriegen.
Was für eine geschwindigkeit kann diese lichtschranke zählen ... ? Also rein aus dem Beispiel würde es mit 100fps beschleunigt werden qürde die lichtschranke es auch zählen ?
Solltest Du im WWW noch nicht fündig geworden sein, hier was aus meiner Bastelkiste, auf dem Beispiel NoiascaLiquidCrystal\examples\02_I2C_PCF8574\0201_I2C_HelloWorld\0201_I2C_HelloWorld.ino beruhend:
#include <Wire.h> // needed for the I2C interface
#include <NoiascaLiquidCrystal.h> // download library from https://werner.rothschopf.net/202009_arduino_liquid_crystal_intro.htm
#include <NoiascaHW/lcd_PCF8574.h> // include the proper IO interface
const byte cols = 20; // columns/characters per row
const byte rows = 4; // how many rows
const byte addr = 0x27; // set the LCD address to 0x3F or 0x27
const byte sensorPin = 7; // Lichtschranke, LOW aktiv
bool aktSensor = 0, altSensor = 0; // Sensorwert, aktuell und alt zur Flankenerkennung
LiquidCrystal_PCF8574 lcd(Wire, addr, cols, rows); // create lcd object - with support of special characters
uint16_t zaehler = 0;
void setup()
{
pinMode(sensorPin, INPUT_PULLUP);
Wire.begin(); // start I2C library
lcd.begin(); // initialize the LCD
lcd.backlight(); // turn on backlight
lcd.setCursor(1, 0);
lcd.print("Hello, world!");
lcd.setCursor(0, 1);
lcd.print("αβμΣ°÷∞←→äöüßÄÖÜ"); // show some special character entered in UTF-8
if (rows > 2)
{
lcd.setCursor(0, 2);
lcd.print("Noiasca LC I2C 2022");
lcd.setCursor(2, 3);
lcd.print("Powered by noiasca");
}
delay(2000);
lcd.clear();
anzeige();
}
void loop()
{
aktSensor = digitalRead(sensorPin);
if ( !aktSensor && altSensor ) // Flankenerkennung
{
zaehler++;
anzeige();
}
altSensor = aktSensor;
}
void anzeige()
{
char buf[22] = {"\0"};
snprintf( buf, sizeof(buf), "Zähler: %5u", zaehler );
lcd.setCursor(0, 0);
lcd.print(buf);
}
PS.: Die nächsten Tage bin ich offline, aber in diesem Forum gibt es genügend hilfsbereite Menschen für Antworten.
Hallo HotSystems,
Danke dir dass du mir bei meiner Bastellei helfen möchtest.
Aber ich weise auf meinen ersten Post drauf hin das da folgendes drinnsteht :
---‐------------------------------------------------------------ Material:
Kugeln = 4 mm Durchmesser +/- 0,02 mm
Rohrdurchmesser 6 mm
Stromversorgung des Systems 9V Blockbatterie
(10 mm Lichtschranke reicht)
(Bauteile, Arduino möchte ich euch gerne offen lassen, was am besten passt, macht mir Vorschläge)
------------‐----------------------------------------------------