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 blocco1int 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