Ecco le resistenze da collegare ad ogni catodo del LED rgb contenuto nel Fritzing Starter Kit di Arduino.
| R | G | B | |
| mA | 30 | 25 | 30 |
| Fn V | 2 | 2.2 | 4 |
| R | 100 | 100 (112) | 33 |
Resistenze in parallelo 110 Ω = 220 Ω / 220 Ω

Andando per trials ed errors, ecco le combinazioni di colori che ho scoperto esistere in un LED RGB.
Catodi ->C/D
Anodi-> A/B/E/F
Blu (B+D) e (C+E)
Rosso (D+F)
Verde (A+C)
In quest’ultimo caso ho dovuto usare la bread board invece che il pin 13 + GND non riuscendo altrimenti a inserire il catodo (di dimensioni molto più piccole rispetto all’anodo)
Ed ecco un tentativo (ancora da completare, la stanchezza ora mi assale) di unione dei diversi canali del LED RGB per ottenere colori composti.
Di seguito…PURPLE haze LED RGB….
int ledPin1 = 11; // LED connected to digital pin 11
int ledPin2 = 10; // LED connected to digital pin 10
int ledPin3 = 6; // LED connected to digital pin 9
int ledPin4 = 5; // LED connected to digital pin 6
int sensorPin=3; // potentiometer connected to pin 2
int sensorValue=0;
void setup() {
Serial.begin(9600);
}
void loop()
{
sensorValue = analogRead (sensorPin);
int ledFadeValue = map(sensorValue, 0, 1023, 0, 255);
analogWrite(11,ledFadeValue); //green
analogWrite(10,ledFadeValue); // blue
analogWrite(6,ledFadeValue); // blue
analogWrite(5,ledFadeValue); // red
Serial.println(sensorValue, DEC);
delay(10);
}


Deliri notturni in quel dei Pispini, interno 7.
Sensore di pressione creato attraverso una palla morbida di gomma piuma al cui interno sono state posizionate due monete di rame tenute separate, a cui a loro volta sono stati collegati due cavi che costituiscono il circuito. Premendo la palla le due monete si toccano e di conseguenza il circuito si chiude, generando l’accensione e lo spegnimento del led.
Semplice ma di forte godibilità tattile
int BALL = 2;
int LED = 13;
int val = 0;
int oldval= 0;
int state=0;
void setup() {
pinMode(LED, OUTPUT);
pinMode(BALL, INPUT);
}void loop() {
val=digitalRead(BALL);
if ((val==HIGH)&&(oldval==LOW)){
state= 1-state;
delay (10);
}
oldval= val;
if (state==1) {
digitalWrite (LED, HIGH);
}
else {
// turn LED off
digitalWrite (LED, LOW);
}
}
..ed ecco la versione con il piezo buzzer come attuatoe al posto del led. Il buzzer viene utilizzato come speaker che emette una sequenza di 4 note. Premendo la palla morbida un volta la sequenza parte, ripremendo smette e così via…
int speakerPin = 9;
int ball=6;
int val = 0;
int oldval= 0;
int state=0;
int length = 4; // the number of notes
char notes[] = "cc g"; // a space represents a rest
int beats[] = { 1, 1, 1, 2};
int tempo = 100;
void playTone(int tone, int duration) {
for (long i = 0; i < duration * 1000L; i += tone * 2) {
digitalWrite(speakerPin, HIGH);
delayMicroseconds(tone);
digitalWrite(speakerPin, LOW);
delayMicroseconds(tone);
}
}
void playNote(char note, int duration) {
char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };
// play the tone corresponding to the note name
for (int i = 0; i < 8; i++) {
if (names[i] == note) {
playTone(tones[i], duration);
}
}
}
int checkBall(){
val=digitalRead(ball);
if ((val==HIGH)&&(oldval==LOW)){
state= 1-state;
delay (10);
}
oldval= val;
Serial.println(state, DEC);
return state;
}
void setup() {
pinMode(speakerPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
for (int i = 0; i < length; i++) {
if (checkBall()==1){
if (notes[i] == ' ') {
delay(beats[i] * tempo); // rest
} else {
playNote(notes[i], beats[i] * tempo);
}
// pause between notes
delay(tempo / 2);
}
}

int buttonPin = 2;
int ledPin = 13;
int buttonState = 0;
void setup() {
pinMode(ledPin,OUTPUT);
pinMode(buttonPin,INPUT);
}
void loop(){
buttonState=digitalRead(buttonPin);
if(buttonState==HIGH){
//turn LED on:
digitalWrite(ledPin,HIGH);
}
else{
// turn LED off:
digitalWrite(ledPin,LOW);
}
}

int sensorPin=2;
int sensorValue=0;
void setup () {
Serial.begin(9600);}
void loop (){
sensorValue = analogRead (sensorPin);
int ledFadeValue = map(sensorValue, 0, 1023, 0, 255);
analogWrite (11, ledFadeValue);
Serial.println(sensorValue, DEC);
delay(20);
}
int sensorPin=2;
int sensorValue=0;
void setup () {
Serial.begin(9600);}
void loop (){
sensorValue = analogRead (sensorPin);
int ledFadeValue = map(sensorValue, 0, 1023, 0, 255); // aumenta da 0 a 255
analogWrite (11, ledFadeValue); // pin da dimmerare
int ledFadeValue2 = map(sensorValue, 0, 1023, 255, 0); // diminuisci da 255 a 0
analogWrite (10, ledFadeValue2); // pin da dimmerare
Serial.println(sensorValue, DEC);
delay(20);
}

Fade in a LED
int ledPin=11; //pin PMW (pulse width modulation)
int ledVal=10; //valore di luminosità
void setup () {
pinMode(ledPin, OUTPUT);}
void loop () {
for(int x=0; x<255; x++) {
analogWrite(ledPin, x); // determina il valore di illuminazione
delay (5); //ritmo del loop (5 ms)
}
}
__________________________________
Fade in and out a LED
int ledPin=11; //pin PMW (pulse width modulation)
int ledVal=10; //valore di luminosità
void setup () {
pinMode(ledPin, OUTPUT);}
void loop () {
for(int x=0; x<255; x++) {
analogWrite(ledPin, x); // determina il valore di illuminazione
delay (5); //ritmo del loop (5 ms)
}
}


Due programmi(ini.ini.ini) da me creati in Processing.
Con codice annesso e connesso.
Randomize