h1

RED BLUE GREEN BLUE channels on RGB led and related resistors

12/17/2009

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 Ω

h1

RGB led combinations

12/17/2009

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);
}

h1

Input/Output flow of data in Arduino

12/16/2009

Flussi di Input e Output in una board Arduino.

TIPO DI FLUSSO    -    TIPO DI PIN            -       TIPO DI FUNZIONE

Input>>>>>>>>>>> Analogic Pin>>>>>>>>>AnalogRead

Input>>>>>>>>>>> Digital Pin>>>>>>>>>>DigitalRead

Output>>>>>>>>>>>Digital Pin>>>>>>>>>>DigitalWrite

Ouput>>>>>>>>>>> PMW Digital Pin>>>>>>AnalogWrite

h1

Fake pressure sensor (by Simona Conti & Chiara Artini)

12/16/2009

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 :D


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);
}
}

h1

Push the button and turn on the light

12/15/2009

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);
}
}

h1

Dimmering LEDs with a potentiometer

12/15/2009

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);
}

h1

Fade in and out PMW pin

12/15/2009

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

h1

RED.GREEN.YELLOW LEDs blinkin’ on a breadboard

12/15/2009

//3 led blinking
int ledPin_1 = 10; // LED connected to digital pin 10
int ledPin_2 = 11; // LED connected to digital pin 11
int ledPin_3 = 12; // LED connected to digital pin 12
// The setup() method runs once, when the sketch starts
void setup() {
// initialize the digital pin as an output:
pinMode(ledPin_1, OUTPUT);
pinMode(ledPin_2, OUTPUT);
pinMode(ledPin_3, OUTPUT);
}
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop()
{
digitalWrite(ledPin_1, HIGH);
digitalWrite(ledPin_2, HIGH);
digitalWrite(ledPin_3, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(ledPin_1, LOW);
digitalWrite(ledPin_2, LOW);
digitalWrite(ledPin_3, LOW); // set the LED off
delay(1000); // wait for a second
}

h1

Randomize & Paint the House

12/14/2009

Due programmi(ini.ini.ini) da me creati in Processing.

Con codice annesso e connesso.

Randomize

void setup () {
size(500,500);
background (152,177,240);
}
void draw () {
if (mousePressed == true && mouseY > 400)  {
noStroke();
fill(random(255),random(255),random(255));
rect(0,400,500,100);
}  //prato
if (mousePressed == true)  {
noStroke();
fill(random(255),random(255),random(255));
rect(100,150,300,250); } //muro
if (mousePressed == true)  {
noStroke();
fill(random(255),random(255),random(255));
rect(225,300,60,100); } //porta
if (mousePressed == true)  {
noStroke();
fill(random(255),random(255),random(255));
rect(125,175,60,60); } //fin sx
if (mousePressed == true)  {
noStroke();
fill(random(255),random(255),random(255));
rect(220,175,60,60);}  //fin center
if (mousePressed == true)  {
noStroke();
fill(random(255),random(255),random(255));
rect(320,175,60,60); } //fin dx
if (mousePressed == true)  {
fill(random(255),random(255),random(255));
noStroke ();
beginShape(POLYGON);
vertex(250,50);
vertex(100,150);
vertex(400,150);
endShape(CLOSE);} //tetto
}

void setup() {
size(500, 500);
noStroke();
background(250);
}
void draw() {
if (mouseY > 400 ) {
fill(23,196,10);
ellipse(mouseX, mouseY, 20, 20) ;}  //prato
if (mouseY <400 ){
fill(152,177,240);
ellipse(mouseX, mouseY, 30, 30); }  //cielo
if (mouseY < 400 && mouseY >150 && mouseX >100 && mouseX < 400){
fill(244,255,67);
ellipse(mouseX, mouseY, 30, 30); } //muro
if (mouseY < 400 && mouseY >275 && mouseX >225 && mouseX < 275){
fill(195,144,0);
ellipse(mouseX, mouseY, 30, 30); }  //porta
if (mouseY <250 && mouseY >175 && mouseX >125 && mouseX < 180){
fill(218,228,255);
ellipse(mouseX, mouseY, 30, 30); }  //finestra sx
if (mouseY <250 && mouseY >175 && mouseX >225 && mouseX < 280){
fill(218,228,255);
ellipse(mouseX, mouseY, 30, 30); }  //finestra center
if (mouseY <250 && mouseY >175 && mouseX >325 && mouseX < 380){
fill(218,228,255);
ellipse(mouseX, mouseY, 30, 30); }  //finestra dx
if (mouseY <150 && mouseY >130 && mouseX <400 && mouseX > 100){
fill(255,115,21);
ellipse(mouseX, mouseY, 30, 30); }  //tetto sx 1
if (mouseY <130 && mouseY >110 && mouseX <370 && mouseX > 130){
fill(255,115,21);
ellipse(mouseX, mouseY, 30, 30); }  //tetto sx 2
if (mouseY <110 && mouseY >90 && mouseX <340 && mouseX > 160){
fill(255,115,21);
ellipse(mouseX, mouseY, 30, 30); }  //tetto sx 3
if (mouseY <90 && mouseY >70 && mouseX <310 && mouseX > 190){
fill(255,115,21);
ellipse(mouseX, mouseY, 30, 30); }  //tetto sx 4
if (mouseY <70 && mouseY >50 && mouseX <280 && mouseX > 220){
fill(255,115,21);
ellipse(mouseX, mouseY, 30, 30); }  //tetto sx 5
}

h1

Natale si avvicina…

12/14/2009

Follow

Get every new post delivered to your Inbox.