L'idea
La cornice
Cornice il legno con tasca laterale. Sezione 6x6cm
La Stampa
Stampa su carta 100x70cm
L'insegna
Neon flessibile (25volt)
Testo disegnato su CAD con indicazione per scavo (5mm) per CNC. Materiale forex nero
Coding
Guarda il codice >>>
/******************** definizione delle costanti **********************************/
int portarossa = 11; // porta 11 da collegare all’anodo “rosso” del modulo RGB
int portaverde = 10; // porta 10 da collegare all’anodo “verde” del modulo RGB
int portablu = 9; // porta 9 da collegare all’anodo “blu” del modulo RBG
int Ledlogo=3;
int Ledlogo1=2;
int distance;
int brightness = 0;
int CieloEff1= 6;
int CieloEff2= 7;
int CieloEff3= 8;
const int Trigger=4;
const int Echo=5;
long timeSensor;
int Palazzi1 = 12;
int Palazzi2 = 13;
int Palazzi3 = 22;
int Luna = 24;
void setup()
{
pinMode(portarossa, OUTPUT); // dichiara la porta 11 come porta di output
pinMode(portaverde, OUTPUT); // dichiara la porta 10 come porta di output
pinMode(portablu, OUTPUT); // dichiara la porta 9 come porta di output
pinMode(Ledlogo, OUTPUT);
pinMode(Ledlogo1, OUTPUT);
pinMode(Trigger, OUTPUT);
pinMode(Echo, INPUT);
Serial.begin(9600);
pinMode(CieloEff1, OUTPUT); //
pinMode(CieloEff2, OUTPUT); //
pinMode(CieloEff3, OUTPUT); //
pinMode(Palazzi1,OUTPUT);
pinMode(Palazzi2,OUTPUT);
pinMode(Palazzi3,OUTPUT);
pinMode( Luna, OUTPUT);
}
void loop()
{
Serial.println("CREATIVE CODE START");
/* LOGO */
digitalWrite(Ledlogo, HIGH); //Il led è acceso
delay(1000); //Attendi il valore letto dal pin analogico 0
digitalWrite(Ledlogo1, HIGH); //Il led è acceso
delay(1000); //Attendi il valore letto dal pin analogico 0
digitalWrite(Luna, HIGH); //Il led è acceso
/*FINESTRE*/
Dissolvenza(HIGH, Palazzi1, 0, 0);
Dissolvenza(LOW, Palazzi1, 0, 0);
Dissolvenza(HIGH, 0, Palazzi2, 0);
Dissolvenza(LOW, 0, Palazzi2, 0);
Dissolvenza(HIGH, 0, 0, Palazzi3);
Dissolvenza(LOW, 0, 0, Palazzi3);
/*FARFALLA + LUNA */
digitalWrite (Trigger, LOW);
delayMicroseconds(5);
digitalWrite(Trigger, HIGH);
delayMicroseconds(15);
digitalWrite (Trigger, LOW);
timeSensor = pulseIn(Echo, HIGH);
distance = 0.034* timeSensor / 2;
if(distance<=40){
Serial.print("distance<=40cm - ");
Serial.print("distance = ");
Serial.println(distance);
// Accensione CieloEff
Dissolvenza(HIGH, CieloEff1, CieloEff2, CieloEff3);
//spengimento CieloEff
Dissolvenza(LOW, CieloEff3, CieloEff2, CieloEff1);
// accensione led cielo + farfalla
LedRGBFarfalla();
delay(2000);
colore(0, 0, 0);
}
else {
Serial.print ("distance>40cm");
Serial.print("distance = ");
Serial.println(distance);
}
digitalWrite(Ledlogo, LOW); //Il led è spento
digitalWrite(Ledlogo1, LOW); //Il led è spento
digitalWrite(Luna, LOW); //Il led è spento
finale();
Serial.println("CREATIVE CODE END");
}
/**************************************************************/
/*** FUNZIONE dissolvenza per FINESTRE PALAZZI E LUNA CIELO ***/
/**************************************************************/
void Dissolvenza(int fz, int blocco1, int blocco2 , int blocco3) {
Serial.println("Dissolvenza");
if(fz == 1){
// primo blocco
if(blocco1>0){
for (brightness = 0; brightness <= 255; brightness += 5) {
analogWrite(blocco1, brightness);
delay(30); // Wait for 30 millisecond(s)
} }
if(blocco2>0){
// secondo blocco
for (brightness = 0; brightness <= 255; brightness += 5) {
analogWrite(blocco2, brightness);
delay(30); // Wait for 30 millisecond(s)
}
}
if(blocco3>0){
// terzo blocco
for (brightness = 0; brightness <= 255; brightness += 5) {
analogWrite(blocco3, brightness);
delay(30); // Wait for 30 millisecond(s)
}
}
}else{
for (brightness = 255; brightness >= 0; brightness -= 5) {
analogWrite(blocco3, brightness);
delay(30); // Wait for 30 millisecond(s)
}
for (brightness = 255; brightness >= 0; brightness -= 5) {
analogWrite(blocco2, brightness);
delay(30); // Wait for 30 millisecond(s)
}
for (brightness = 255; brightness >= 0; brightness -= 5) {
analogWrite(blocco1, brightness);
delay(30); // Wait for 30 millisecond(s)
}
}
}
/*******************************/
/*** FUNZIONE ledRGBFarfalla ***/
/*******************************/
void LedRGBFarfalla(){
Serial.println("LedRGBFarfalla");
// gestione colori (tra parentesi il valore da inserire nei tre parametri (rosso, verde e blu)
colore(255, 0, 0); // lancia la routine colore, con il parametro rosso a 255, il verde a 0
// ed il blu a 0 (accende il rosso)
delay(1000); // aspetta 2 secondi prima di accendere il successivo colore
colore(0,255, 0); // lancia la routine colore ed accende il verde
delay(1000); // aspetta 2 secondi
colore(0, 0, 255); // accende il blu
delay(1000);
colore(237,109,0); // accende l’arancione (237 di rosso e 109 di verde)
delay(1000);
colore(255,215,0); // accende il giallo (255 di rosso e 215 di verde)
delay(1000);
colore(0,46,90); // accende l’indaco (46 di verde e 90 di blu)
delay(1000);
colore(128,0,128); // accende il viola (128 di rosso e 128 di blu)
delay(1000);
}
/**********************routine di accensione del led RGB ********************************
nelle prossime righe viene definita la routine “colore” che, al momento del lancio, e’
accompagnata da tre variabili (rosso, verde e blu) che contengono i valori dell’intensità
luminosa, di volta in volta voluta, per ogni singolo led (0 = minima e 255 = massima) */
void colore (unsigned char rosso, unsigned char verde, unsigned char blu)
{
Serial.println("colore");
analogWrite(portarossa, rosso); //attiva il led rosso con l’intensità definita nella variabile rosso
analogWrite(portablu, blu); //attiva il led blu con l’intensità definita nella variabile blu
analogWrite(portaverde, verde); //attiva il led verde con l’intensità definita nella variabile verde
}
/***************************/
/*** FINALE ***/
/***************************/
void finale(){
Serial.println("finale");
for(int i = 0; i<2;i++){
delay(1000);
// accensione
digitalWrite(Ledlogo, HIGH);
digitalWrite(Ledlogo1, HIGH);
digitalWrite(Luna, HIGH);
digitalWrite(Palazzi1, HIGH);
digitalWrite(Palazzi2, HIGH);
digitalWrite(Palazzi3, HIGH);
digitalWrite(CieloEff1, HIGH);
digitalWrite(CieloEff2, HIGH);
digitalWrite(CieloEff3, HIGH);
digitalWrite(CieloEff3, HIGH);
LedRGBFarfalla();
//spenge tutto
// accensione
colore(0,0,0);
digitalWrite(Ledlogo, LOW);
digitalWrite(Ledlogo1, LOW);
digitalWrite(Luna, LOW);
digitalWrite(Palazzi1, LOW);
digitalWrite(Palazzi2, LOW);
digitalWrite(Palazzi3, LOW);
digitalWrite(CieloEff1, LOW);
digitalWrite(CieloEff2, LOW);
digitalWrite(CieloEff3, LOW);
digitalWrite(CieloEff3, LOW);
}
}
Impianto elettrico - Simulazione Tinkercad