Ping Pong Bear Tisch

Ich habe vor einen Ping Pong Bear Tisch zu bauen ...

Der Tisch soll Beleuchtet sein. Ich habe es mit Ardublock versucht zu Programmieren ,es Funktioniert mit einem aber zwei funktioniert schon nicht mehr ...

Da ja alle 20 RGB Kreise + jeweils der IF sensor von jedem einzelnen abgefragt und dauert überprüft werden muss ob der Becher noch auf der Fläche steht . Da jeder Kreis dann sein Programm starte , abhängig ob der Becher auf der Fläche steht oder nicht.

Er soll folgendes können.

Programm:

Becher wird auf die Fläche gestellt zb.22 (Siehe Bild) der Dig.Infarotsensor erkennt das, und startet das erste Programme.

1 . Programm RGB laufen im Kreis ( Farben wähl über Poti ) Geschwindigkeit wählbar über 2. Poti Zeit : 30 ca. 2 Prorgamme startet.
2. Programm RGB bleibt steht alle Lampen an ( Farbe Wähl paar wieder über gleiche Poti)
3. Programm Becher wird weg genommen .. alle RGB leuchten Rot... nach einander geht eins aus bis alle aus sind.

https://www.dropbox.com/sh/5ydv569wizt4a6z/AACwl7sDevZ1rMYPgrBm9TRga?dl=0

Shwowak:
Ich habe vor eine Ping Ping Tisch zu bauen ...

Wasis? Ich verstehe nur Bahnhof.

Kannst Du das genauer beschreiben oder hast Du einen Link zu so einem Ding?

Gruß

Gregor

Die Beschreibung ist nicht verständlich.

Das Bild hier im Forum posten, viele möchten keine externen Seiten öffnen.

Hier erst mal das Bild ,ich versuch die Beschreibung zubearbeiten

Beer Pong. Nicht Ping Pong. Hatte ich mir schon fast gedacht als ich "Becher" las

Ich habe es mit Ardublock Probiert

Solche komplexen Sachen sollte man vielleicht eher per Hand programmieren

Meine RGB aufbau eine Seite , zweites Bild IF Sensor und Poti

Der IF sensor , kommt auf die RGB Kreise , sobald ein Becher auf den RGB Kreisen steht ,soll er angehen , sobald der Becher weg ist, wieder aus.. jeder RGB Kreis hat sein eigenen IF Sensor .

cool wäre es Per Poti oder taster ,soll 1. Programm wahl ,2. Programme Geschwinigkeit 3. Programme Helligkeit einstellt bar sein ...

Shwowak:
... Bild ...

Danke!

Jetzt weiß ich wenigstens, dass Du keinen Pingpong-Tisch bauen möchtest, sondern etwas, das ich in RL noch nie gesehen habe. Mich würde interessieren, was/wie man da spielt.

Gruß

Gregor

Ist eher eine amerikanische Sache

Und ich verstehe nicht, was ein IF-Sensor ist.

Ich kenne einen IR-Sensor, der Infrarot detektiert. Meinst du den?

Hey ja genau sry schreib fehler IR Sensor .

Sobald der IR Sensor betätig wird soll ... ein NeoPixel Programm ablaufen.

Das Probleme was ich habe ,das er ja alle 20 IR Sensoren dauert überprüfen muss.

017645816077 Whatsapp wenn mir jemanden helfen will , beim programmieren wäre nice.

Shwowak:
... Whatsapp ...

Bitte?!

Du kannst nicht verständlich beschreiben, was Du machst, vertippst Dich und möchtest jetzt Hilfe beim Programmieren?

Ich bin irritiert ...

Gregor

PS: Immerhin fändest Du es nice.

Hallo,
"Das Probleme was ich habe ,das er ja alle 20 IR Sensoren dauert überprüfen muss"

Wenn diese Sensoren nichts machen, dann haben sie doch einen bestimmten Zustand.
Diesen Zustand (20) kannst Du doch in einem Array ablegen.
Nun fragst Du das Array über eine Schleife auf Veränderung ab.
Das geht blitzschnell.

Gruß und Spaß
Andreas

Vielen Dank @ SkobyMobil das du mir Hilft. Ich werde das mal versuchen.

Hier meine Hardware

Meine Hardware.doc (573 KB)

SkobyMobil ist diese auch per Ardublock möglich ? Array

So etwas ?

#include <Adafruit_NeoPixel.h>

Adafruit_NeoPixel strip_pin22 = Adafruit_NeoPixel(16,22, NEO_RGB + NEO_KHZ800);
bool Sensor22= false ;
bool Sensor26= false ;

void IREmfanger();

void setup()
{
pinMode( 49 , INPUT);
pinMode( 52 , INPUT);
strip_pin22.begin();
strip_pin22.show();
Serial.begin(9600);

}

void loop()
{
Serial.print("IFSensor22");
Serial.print(Sensor22);
Serial.println();
Serial.print("IFSensor26");
Serial.print(Sensor26);
Serial.println();
IREmfanger();
}

void IREmfanger()
{
Sensor22 = digitalRead(49) ;
Sensor26 = digitalRead(52) ;
}

Hallo,
an meinem Nano ist ein APA102C Lichtband mit 64 Lichtpunkten (RGB) angeschlossen. Dafür habe ich ein kleines Programm als Anregung geschrieben. Wird ein Taster (Ersatz für IR-Sensor) gedrückt, werden die zugehörigen 16 Lichtpunkte nacheinander grün, wird er losgelassen, werden sie nacheinander rot.

/* APA102 Anfang */
#include "FastLED.h"
FASTLED_USING_NAMESPACE
#define LED_TYPE    APA102
#define COLOR_ORDER BGR
#define BRIGHTNESS  30
#define NUM_LEDS    320
CRGB leds[NUM_LEDS];
/* APA102 Ende */

#define ZEIT1 50
#define ZEIT2 50
const byte anzBecher = 20, anzLedsproRing = 16;
const byte IRsensorPin[anzBecher] = {2, 3, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5}; // Der Nano hat nicht genügend Eingänge.
byte led[anzBecher];
byte becher;
byte status[anzBecher];
bool aktIRsensor[anzBecher];
bool altIRsensor[anzBecher];
unsigned long aktMillis, altMillis[anzBecher], intervall[anzBecher];
enum {OHNEBECHER, ANIMATION1, MITBECHER, ANIMATION2};

void setup() {
  Serial.begin(9600);
  for (becher = 0; becher < anzBecher; becher++) {
    pinMode(IRsensorPin[becher], INPUT_PULLUP);
    aktIRsensor[becher] = digitalRead(IRsensorPin[becher]);
    altIRsensor[becher] = aktIRsensor[becher];
  }
  becher = 0;
  /* APA102 Anfang */
  FastLED.addLeds<LED_TYPE, COLOR_ORDER>(leds, NUM_LEDS);
  FastLED.setBrightness(BRIGHTNESS);
  LEDS.showColor(CRGB(0, 0, 0));
  /* APA102 Ende */
}

void loop() {
  aktMillis = millis();
  altIRsensor[becher] = aktIRsensor[becher];
  aktIRsensor[becher] = digitalRead(IRsensorPin[becher]);
  if (aktMillis - altMillis[becher] >= intervall[becher]) {
    switch (status[becher]) {
      case OHNEBECHER:
        if (altIRsensor[becher] && !aktIRsensor[becher]) {
          delay(30);  // einfaches Entprellen
          intervall[becher] = ZEIT1;
          led[becher] = 0;
          status[becher] = ANIMATION1;
        }
        break;
      case ANIMATION1:
        altMillis[becher] = aktMillis;
        leds[becher * anzLedsproRing + led[becher]] = CRGB::Green;
        FastLED.show();
        led[becher]++;
        if (led[becher] >= anzLedsproRing) {
          status[becher] = MITBECHER;
        }
        break;
      case MITBECHER:
        if (!altIRsensor[becher] && aktIRsensor[becher]) {
          delay(30);  // einfaches Entprellen
          intervall[becher] = ZEIT2;
          led[becher] = 0;
          status[becher] = ANIMATION2;
        }
        break;
      case ANIMATION2:
        altMillis[becher] = aktMillis;
        leds[becher * anzLedsproRing + led[becher]] = CRGB::Red;
        FastLED.show();
        led[becher]++;
        if (led[becher] >= anzLedsproRing) {
          status[becher] = OHNEBECHER;
        }
        break;
    }
  }
  becher++;
  becher = becher % anzBecher;
}

Meldung der IDE:

Der Sketch verwendet 5.856 Bytes (19%) des Programmspeicherplatzes. Das Maximum sind 30.720 Bytes.
Globale Variablen verwenden 1.480 Bytes (72%) des dynamischen Speichers, 568 Bytes für lokale Variablen verbleiben. Das Maximum sind 2.048 Bytes.

Sport mit Bier aus Plastikbecher, in dem vorher ein PingPong-Ball schwammm :stuck_out_tongue_closed_eyes:

Aber jeder wie er mag, ich freue mich auf das nächste Grillen mit Freunden und einem Bier aus einer Glastulpe :grin:

Hallo,
"Ardublock" Was soll das sein? Keine Ahnung...
Das Beispiel von agmue kannst Du doch übernehmen und erweitern.
Gruß und Spaß
Andreas

SkobyMobil:
"Ardublock" Was soll das sein? Keine Ahnung...

Suchmaschine kaputt? :grin:

"Bei Ardublock handelt es sich um eine Erweiterung der Standard Arduino IDE, wobei anstelle des manuellen Programmierens der Programmablauf aus verschiedenen Blöcken zusammengeklickt werden kann." (Quelle)

Klick klick und das Programm ist fertig :slight_smile:

Bei Ardublock handelt es sich um eine Erweiterung der Standard Arduino IDE

Ist das eine Erweiterung oder eher eine Beschränkung der IDE auf vorgefertigte klickbare Komponenten?

Die IDE selbst ist schon ein Versuch, das Einfache noch einfacher zu machen.
(Was immer dazu führt, dass alles was nicht unterstützt wird, eher schwieriger wird)


Und wenn ich mich hier schon mal einmische:
Es gibt hier zwar schon länger einen Eisebären, aber einen PingPong-Bären kann ich mir schwer vorstellen :wink:

Hallo,
ich habe es mal angelesen- reichte mir dann aber ganz schnell.
Wenn er das nutzt, dann sollte er sich an ein FachForum- für diese "Oberfläche" wenden.
Gruß und Spaß
Andreas