Dodecahedron TM&LI
Articolul actual reprezintă procesul de prototipare 3D și programare Arduino a circuitului pentru o lampă de masă. Lampa are o formă dodecaedrică.
Proiectul de față a fost realizat în cadrul Taberei de vară GirlsGoIT.
Link către prototipul în Fusion 360
Schița Pe Foaie
Conceptul acestei lămpi de masă presupune proiectarea a 3 componente distincte:
1)Abajurul (Dodecaedru regulat) compus din 12 fețe pentagonale regulate, unghiul dintre fețe=116.6 grade
2)Baza (platforma) - cutie 135*180mm, h=25mm,
3)Capacul pentru bază + pentagon extrudat de h= 5mm, gros = 3mm
Model 3D:
Electronica - Schema
Descriere:
Partea electronică a lămpii este formată din placa Arduino, Breadboard, 4 led-uri simple si 4 led-uri RGB , fire, rezistoare și touchbutton.
Modul de funcționare:
Pentru declanșarea modulelor de iluminare (5 la număr) se folosește un touchbutton. Primele 4 module reglează activitatea celor 4 led-uri albe - cu fiecare apăsare se aprind pe rând. Al cincilea modul activează led-urile RGB, cu regim "fading" de funcționare.
Partea electronică a lămpii este formată din placa Arduino, Breadboard, 4 led-uri simple si 4 led-uri RGB , fire, rezistoare și touchbutton.
Modul de funcționare:
Pentru declanșarea modulelor de iluminare (5 la număr) se folosește un touchbutton. Primele 4 module reglează activitatea celor 4 led-uri albe - cu fiecare apăsare se aprind pe rând. Al cincilea modul activează led-urile RGB, cu regim "fading" de funcționare.
Codul De Funcționare Arduino
#define pinRosu 6
#define pinAlbastru 5
#define pinVerde 3
#define pinR 11
#define pinA 10
#define pinV 9
int led1Pin = 7;
int led2Pin = 13;
int led3Pin = 4;
int led4Pin = 2;
int buttonP = 12;
int buttonM = 8;
int buttonMeasure = 0;
void setup(){
pinMode(buttonP, INPUT_PULLUP);
pinMode(buttonM, INPUT_PULLUP);
pinMode(led1Pin, OUTPUT) ;
pinMode(led2Pin, OUTPUT) ;
pinMode(led3Pin, OUTPUT) ;
pinMode(led4Pin, OUTPUT) ;
pinMode (pinRosu, OUTPUT);
pinMode (pinAlbastru ,OUTPUT);
pinMode (pinVerde, OUTPUT);
pinMode (pinR, OUTPUT);
pinMode (pinA, OUTPUT);
pinMode (pinV, OUTPUT);
Serial.begin(9600);
}
void loop()
{
Serial.println(buttonMeasure);
if(digitalRead(buttonP)==LOW)
{
buttonMeasure++ ;
delay(500);
}
if(digitalRead(buttonM)==LOW)
{
buttonMeasure-- ;
delay(500);
if(buttonMeasure < 0)
{
buttonMeasure=0;
}
delay(10);
}
if( buttonMeasure==0)
{
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
}
if( buttonMeasure==1)
{
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
}
if( buttonMeasure==2)
{
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
}
if( buttonMeasure==3)
{
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, HIGH);
digitalWrite(led4Pin, LOW);
}
if( buttonMeasure==4)
{
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, HIGH);
digitalWrite(led4Pin, HIGH);
}
if( buttonMeasure==5)
{
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, HIGH);
digitalWrite(led4Pin, HIGH);
for(int i = 0;i<255;i++){
analogWrite(pinRosu, i);
delay(10);
}
for(int i = 0;i<255;i++){
analogWrite(pinR, i);
delay(10);
}
for(int i = 0;i<255;i++){
analogWrite(pinAlbastru, i);
delay(10);
}
for(int i = 0;i<255;i++){
analogWrite(pinA,i);
delay(10);
}
for(int i = 0;i<255;i++){
analogWrite(pinVerde,i);
delay(10);
}
for(int i = 0;i<255;i++){
analogWrite(pinV,i);
delay(20);
}
for(int i = 255;i>0; i--){
analogWrite(pinRosu,i);
delay(10);
}
for(int i = 255;i>0; i--){
analogWrite(pinR,i);
delay(10);
}
for(int i = 255;i>0; i--){
analogWrite(pinAlbastru,i);
delay(10);
}
for(int i = 255;i>0; i--){
analogWrite(pinA,i);
delay(10);
}
}
if ( buttonMeasure == 6 )
{
analogWrite(pinRosu, 0);
analogWrite(pinR, 0);
analogWrite(pinAlbastru , 0);
analogWrite(pinA, 0);
analogWrite(pinVerde, 0);
analogWrite(pinV, 0);
}
if ( buttonMeasure == 7)
{
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, HIGH);
digitalWrite(led4Pin, LOW);
}
if ( buttonMeasure == 8 )
{
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
}
if ( buttonMeasure == 9 )
{
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
}
if ( buttonMeasure == 10 )
{
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
}
if (buttonMeasure >10)
{
buttonMeasure =0;
}
delay(10);
}
Mulțumim Taberei de vară GirlsGoIT pentru instruirea, suportul și îndrumările acordate.