Code/Fragen zu einer Lichtschranke bzw System (Modellbau)

Moin, Techniker und Freunde der Mikrocontroller,

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

genaueres gib es nich: Wahr oder Falsch

kannste gleich vergessen

ohne Abstand zwische einzelnen Kugeln?

bitte mach Bilder, Pläne von deiner Fabrik,
kennzeichne wo es zur verstopfung kommt
mach ein Video wie es zur Verstopfung kommt.

Fortsetzung von:

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 ?

LG LWA-Tech

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.

Grüße LWA-Tech

Hallo zusammen ...

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 ?

Liebe Grüße LWA tech

Hallo alleine,

nimm eine Suchmaschine deiner Wahl und befrage das WWW mit 'frequenzähler +arduino'.

Da wir deine verwendete Hardware nicht kennen, musst du wohl selbst suchen.

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.

1 Like

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)
------------‐----------------------------------------------------

Ich danke dir für deinen Beitrag

Grüße LWA-Tech

Vielen vielen dank ... damit teste ich mich ein bisschen herum ...

Wünsche dir einen guten start in die Woche !

LWA-Tech

Danke gleichfalls, den hatte ich in einem Teich badend.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.