Arduino Chameleon Projekt Hilfe (GER)

Guten Abend,

Kurz eine kleine Einleitung zu mir und meinem Projekt, bevor ich zur eigentlichen Frage komme.

Ich bin aktuell noch Schüler, 19 Jahre jung und bin seit einigen Jahren nun am basteln in alle Richtungen. Ich habe mir nun mein erstes Arduino Projekt auferlegt das ich gerne in meine Jacke intigrieren möchte.

Meinem Projekt liegt ein fertiger Code zugrunde. Aber ich bin zu blöd die Verkabelung zwischen meinem Arduino, Ws28112b Lichtstreifen und TCS34725 herzustellen. Die Hardware habe ich schon zu liegen und beim verlöten und basteln bin ich kein Neuling. Meine Frage wäre deshalb ob mir jemand helfen kann eine kleine Skizze für die Verkabelung aufzustellen mit ggf. Widerständen. Den Code vermerke ich weiter unten.

Über jegliche Hilfe würde ich mich sehr freuen.

Code_Arduino.ino (4.41 KB)

Zutun:
Über jegliche Hilfe würde ich mich sehr freuen.

Hallo,
ich würde mich mal interessieren, woher du weißt, welche Bauteile du für dein Projekt brauchst.
Da musst du doch irgend eine Info habe, die dir auch eine entsprechende Schaltung zur Verfügung stellt, so wie auch den Sketch.

Oder hast du dir das so ausgedacht ?

Hi

Entferne bitte alle unnötigen Leerzeilen aus Deinem Sketch (scheint JEDE 2.te zu sein ...)
STRG+T in der IDE formatiert den Code, rückt die Zeilen auf Klammer-Ebene ein.

Dann mögen die Jungs hier auch, wenn man CODE in Code-Tags packt - dann kann man den Kram direkt im Forum durch scrollen - auch mit mobilen Geräten.
DAS aber bitte, wenn der Sketch zumindest halbwegs lesbar daher kommt.
Unnütze Zeilen - weg damit (oder warum ist der halbe recht viel des Sketch auskommentiert?)

Dann darfst Du noch ein paar Worte zu Deinem Vorhaben verlieren - Du hast 2 Stripes a 80 LED?
Warum?

WAS soll passieren
WAS passiert statt Dessen?
WAS hast Du bereits unternommen?
WAS ist dabei heraus gekommen?

MfG

PS: Alleine die FadeOut-Funktion ... da rollen sich mir die Fußnägel hoch ... auch gerne dazu eine Erklärung, WAS das Teil machen soll.

Guten Abend,

Ich habe mein Projekt wo ein wenig zu sehr überstürzt.

Hier einmal meine fertige Idee:

Eine Lichtdurchlässige Jacke soll mit 2x2 Led Streifen in den Armen ausgestattet werden. Die LED Streifen sollen das Licht abgeben und werden durch eine selbstgebaute Schicht diffused und verteilt. Der Lichtsensor TCS34725 soll in einen schwarzen Handschuh intigriert werden der dann in der Umgebung Farben aufnehmen soll und diese an die 2 Lichtstreifen in den Ärmeln verteilt. Diese Lichteffekte sollen dann mit einer fade out Funktion wieder verschwinden.

Für das Projekt habe ich also folgendes geplant:

2x Arduino Uno
2x Ws2812 RGB Lichtstreifen 60 LED/Meter
2x TSC34725 Lichtsensoren.

Um nochmal meine Problematik zu beschreiben. Ich bin in der Lage die jacke zu bauen. Leider habe ich wenig bis keine Ahnung von Skripts und Sketches. Ich würde mich noch in der Lage fühlen den Code auf den Arduino zu laden, aber alleine bei der Verkabelung vom Arduino zum Farbsensor und RGB Streifen bin ich total aufgeschmissen. Ich weis nicht an welche Pins ich die einzelnen Komponenten (Arduino,Lichtsensor,RGB Strip) anschließen muss und welche Widerstände wo unterzubringen sind. Hierfür wäre eine Skizze sehr hilfreich. Generell würde Ich auch gerne alle Verbesserungen einbauen, wo möglich.

#include <Wire.h>
#include "Adafruit_TCS34725.h"
#include <Adafruit_NeoPixel.h>
#define PINA 6
#define PINB 5
#define TPIXELA 80 //The total amount of pixel's/led's in your connected strip/stick (Default is 60)
#define TPIXELB 80 //The total amount of pixel's/led's in your connected strip/stick (Default is 60)
//int switchPin = 10; // switch is connected to pin 10
//int val; // variable for reading the pin status
//int val2;
//int buttonState; // variable to hold the button state
//int lightMode = 0; // how many times the button has been pressed

Adafruit_NeoPixel strip_a = Adafruit_NeoPixel(TPIXELA, PINA, NEO_GRB + NEO_KHZ800);

Adafruit_NeoPixel strip_b = Adafruit_NeoPixel(TPIXELB, PINB, NEO_GRB + NEO_KHZ800);
// our RGB -> eye-recognized gamma color
byte gammatable[256];
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X);
void setup() {

}

void loop() {
  Serial.begin(9600); // Set up serial communication at 9600bps
  //pinMode(switchPin, INPUT_PULLUP); // Set the switch pin as input
  pinMode(PINA, OUTPUT);
  pinMode(PINB, OUTPUT);
  //strip.setBrightness(200); //adjust brightness here
  //buttonState = digitalRead(switchPin); // read the initial state
  strip_a.begin();
  strip_a.show(); // Initialize all pixels to 'off'
  strip_b.begin();
  strip_b.show(); // Initialize all pixels to 'off'
  if (tcs.begin()) {
    Serial.println("Found sensor");

  } else {

    Serial.println("No TCS34725 found ... check your connections");

    while (1); // halt!

  }
  // thanks PhilB for this gamma table!
  // it helps convert RGB colors to what humans see
  for (int i = 0; i < 256; i++) {
    float x = i;
    x /= 255;
    x = pow(x, 2.5);
    x *= 255;
    gammatable[i] = x;
    //Serial.println(gammatable[i]);

  }

  uint16_t clear, red, green, blue;
  tcs.setInterrupt(false); // turn on LED
  delay(200); // takes 50ms to read
  tcs.getRawData(&red, &green, &blue, &clear);
  tcs.setInterrupt(true); // turn off LED
  Serial.print("C:\t"); Serial.print(clear);
  Serial.print("\tR:\t"); Serial.print(red);
  Serial.print("\tG:\t"); Serial.print(green);
  Serial.print("\tB:\t"); Serial.print(blue);
  // Figure out some basic hex code for visualization
  uint32_t sum = red;
  sum += green;
  sum += blue;
  sum = clear;
  float r, g, b;
  r = red; r /= sum;
  g = green; g /= sum;
  b = blue; b /= sum;
  r *= 256; g *= 256; b *= 256;
  Serial.print("\t");
  Serial.print((int)r, HEX); Serial.print((int)g, HEX); Serial.print((int)b, HEX);
  Serial.println();
  //Serial.print((int)r ); Serial.print(" "); Serial.print((int)g);Serial.print(" "); Serial.println((int)b );
  //colorWipe(strip.Color(gammatable[(int)r], gammatable[(int)g], gammatable[(int)b]), 0);
  if (clear <= 150) {
    function1();

  }

  if (clear <= 1000) {
    function2();

  }

  else {
    function3();
    Serial.print((int)r ); Serial.print(" "); Serial.print((int)g); Serial.print(" "); Serial.println((int)b );
    colorWipe(strip_a.Color(gammatable[(int)r], gammatable[(int)g], gammatable[(int)b]), 0), (strip_b.Color(gammatable[(int)r], gammatable[(int)g], gammatable[(int)b]), 0);

  }

}

// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  for (uint16_t i = 0; i < strip_a.numPixels(), i < strip_b.numPixels(); i++) {
    strip_a.setPixelColor(i, c), strip_b.setPixelColor(i, c);
    strip_a.show(), strip_b.show();
    delay(30);

  }

}
void function1() {
  int R = 0;
  int G = 0;
  int B = 0;
  int foutCount = 5;
  int waitT = 5;
  //Fade Out
  while (1) { //using an inf loop to be more custom.
    //Protect the strand from higher then 255 values
    if (R > 255 || G > 255 || B > 255) {
      break;  //DO NOT DELETE OR ALTER THIS LINE.
    }
    //break the inf loop if the color is off
    if (R < 0 && G < 0 && B < 0) {
      //ReSet the RGB to 0 values.
      R = 0;
      G = 0;
      B = 0;
      break;

    }

    //update the strip
    for (int j = 0; j < strip_a.numPixels(); j++) {
      strip_a.setPixelColor(j, strip_a.Color(R, G, B)), strip_b.setPixelColor(j, strip_a.Color(R, G, B));
      strip_a.show(), strip_b.show();
      delay(30);

    }

    //Decrease by the set amount
    R = R - foutCount;
    G = G - foutCount;
    B = B - foutCount;
    delay(waitT);

  }

}


void function2() {
  uint32_t color; strip_a.getPixelColor(0), strip_b.getPixelColor(0);

}

void function3() {
  strip_a.setBrightness(255); //adjust brightness here
  strip_b.setBrightness(255); //adjust brightness here

}

Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
So ist er auch auf portablen Geräten lesbar. Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

Danke für den Hinweis, habe ich gemacht.

Hi

Muß ich meinen Post (#2) erneut hier hin kopieren, oder liest Du Den eh nicht?

MfG

postmaster-ino:
Hi

Muß ich meinen Post (#2) erneut hier hin kopieren, oder liest Du Den eh nicht?

MfG

Ich weis leider nicht was jetzt noch falsch ist. Strg T Habe ich gemacht und auch so viele Leerzeichen entfernt wie möglich.

Dann lies Dir das Posting #2 nochmal in Ruhe durch, da steht noch mehr drin.

Gruß Tommy

Wieviele LED willst Du den verwenden. Die Anzahl der LED pro Meter sagt wenig aus.
Grüße Uwe

Adafruit hat die Dokumentationen und Tutorials entfernt? Das wäre aber gemein.

Die die nicht zu faul zum Suchen sind können das dem TE ja mal schnell raussuchen und mundgerecht einlöffeln.

Ich such schon wieder den Knopf...

Ich hab jetzt nicht lang suchen müssen um das hier zu finden. Bau das doch erstmal nach, du siehst den Aufbau, die Verkabelung und der Sketch ist auch dabei.

Video

Zufällig gerade was Ähnliches gesehen:
Hosenträger bei Make

Musst Du nur noch den PIC durch den Arduino ersetzen und Deinen Lichtsensor dazustricken.

Zutun:
Ich bin in der Lage die jacke zu bauen. Leider habe ich wenig bis keine Ahnung von Skripts und Sketches. Ich würde mich noch in der Lage fühlen den Code auf den Arduino zu laden, aber alleine bei der Verkabelung vom Arduino zum Farbsensor und RGB Streifen bin ich total aufgeschmissen. Ich weis nicht an welche Pins ich die einzelnen Komponenten (Arduino,Lichtsensor,RGB Strip) anschließen muss und welche Widerstände wo unterzubringen sind. Hierfür wäre eine Skizze sehr hilfreich. Generell würde Ich auch gerne alle Verbesserungen einbauen, wo möglich.

Ich wusste noch nicht, dass wir hier das Entwicklungsbüro von "ahnungslosen" Arduinobastlern sind.
Versuche doch mal an einer Uni in deiner Nähe, ob da jemand bereit ist, dir das zusammen zu basteln.

Da du noch nicht einmal in der Lage bist, hier Fragen zu beantworten, wie soll das denn funktionieren ?

Hallo,

HotSystems:
Ich wusste noch nicht, dass wir hier das Entwicklungsbüro von "ahnungslosen" Arduinobastlern sind.
Versuche doch mal an einer Uni in deiner Nähe, ob da jemand bereit ist, dir das zusammen zu basteln.

diese Problematik verfolgt uns ja in letzter Zeit ohnehin immer öfter.
Meine Meinung ist da inzwischen: ich schaue es mir an, wenn es meinen eigenen Interessenbereich trifft, ich es also auch haben will. Dann ist mir sogar relativ egal, wieviel Anteil da ich oder der jeweilige TO beisteuert.
Hier ist es für mich einfach: brauch ich nicht, also ignoriere ich den Thread.

Ich vermisse hier im Forum einen Bitton "Threads mit eigenen Eintragen anzeigen". Gibt es im µC.net und ist sehr hilfreich. Ein Blick auf neue Post allgemein, interessiert mich was, antworten. Danach nur noch auf die mit eigenen Beiträgen schauen.

Gruß aus Berlin
Michael

amithlon:
Ich vermisse hier im Forum einen Bitton "Threads mit eigenen Eintragen anzeigen". Gibt es im µC.net und ist

Meinst Du sowas? https://forum.arduino.cc/index.php?action=profile;area=showposts;u=902609

Hallo,

Danke für den Tipp, damit kann ich gut leben.

Gruß aus Berlin
Michael