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.
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.
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.
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.
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.
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.
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 ?
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.