Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Arduino: Pràctiques amb llum     http://blocs.xtec.cat/mecanica                          Francesc Pérez García            ...
http://blocs.xtec.cat/mecanica
Pràctiques amb llum:   LDR i LED-RGB en un ArduinoMaterials:-4 resistències de 220 Ω-1 sensor LDR-1 Led RGB-1 potenciòmetr...
CODI FONT: Aquest programa canvia el color del LED RGB en funció de la llum ambientalint valorLDR = 1;int ledRojo = 9;int ...
void loop(){valorLDR = analogRead(pinLDR);if(valorLDR >= 1023){digitalWrite(ledRojo, 128);digitalWrite(ledVerde, 0);digita...
else if((valorLDR >= 895) & (valorLDR < 959))   else if((valorLDR >= 639) & (valorLDR < 703))   else if((valorLDR >= 383) ...
else if((valorLDR >= 127) & (valorLDR <     else  191))                                            {{                     ...
Programes cub de LEDS: Exemple dexplosióint Columnas[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};int Filas[] = {12, 11, 10};int t=400;...
for(int i=0;i<t;i++){  if(i%2==0){                              digitalWrite(Filas[0], HIGH);                             ...
Arduino pràctiques amb llum
Arduino pràctiques amb llum
Arduino pràctiques amb llum
Arduino pràctiques amb llum
Arduino pràctiques amb llum
Arduino pràctiques amb llum
Arduino pràctiques amb llum
Upcoming SlideShare
Loading in …5
×

Arduino pràctiques amb llum

439 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

Arduino pràctiques amb llum

  1. 1. Arduino: Pràctiques amb llum http://blocs.xtec.cat/mecanica Francesc Pérez García Institut Pompeu Fabra (Martorell)
  2. 2. http://blocs.xtec.cat/mecanica
  3. 3. Pràctiques amb llum: LDR i LED-RGB en un ArduinoMaterials:-4 resistències de 220 Ω-1 sensor LDR-1 Led RGB-1 potenciòmetre-1 placa arduino Uno- Cables
  4. 4. CODI FONT: Aquest programa canvia el color del LED RGB en funció de la llum ambientalint valorLDR = 1;int ledRojo = 9;int ledVerde=10;int ledAzul=11;int pinLDR = 1;//Necessitem 3 sortides diferents que donaran un senyal dintensitat diferent als 3 colors del RGB: blau, vermell i verd.void setup(){pinMode(ledRojo, OUTPUT);pinMode(ledVerde, OUTPUT);pinMode(ledAzul, OUTPUT);analogReference(EXTERNAL);}
  5. 5. void loop(){valorLDR = analogRead(pinLDR);if(valorLDR >= 1023){digitalWrite(ledRojo, 128);digitalWrite(ledVerde, 0);digitalWrite(ledAzul, 0);// Amb la instrucció digitalWrite i amb el valor numèric aconseguim molts colors diferents}else if((valorLDR >= 959) & (valorLDR < 1023)){digitalWrite(ledRojo, 255);digitalWrite(ledVerde, 0);digitalWrite(ledAzul, 0);}
  6. 6. else if((valorLDR >= 895) & (valorLDR < 959)) else if((valorLDR >= 639) & (valorLDR < 703)) else if((valorLDR >= 383) & (valorLDR < 447)){ { {digitalWrite(ledRojo, 255); digitalWrite(ledRojo, 128); digitalWrite(ledRojo, 0);digitalWrite(ledVerde, 128); digitalWrite(ledVerde, 128); digitalWrite(ledVerde, 128);digitalWrite(ledAzul, 0); digitalWrite(ledAzul, 255); digitalWrite(ledAzul, 0);} } }else if((valorLDR >= 831) & (valorLDR < 895)) else if((valorLDR >= 575) & (valorLDR < 639)) else if((valorLDR >= 319) & (valorLDR < 383)){ { {digitalWrite(ledRojo, 255); digitalWrite(ledRojo, 0); digitalWrite(ledRojo, 0); digitalWrite(ledVerde, 128); digitalWrite(ledVerde, 255);digitalWrite(ledVerde, 255); digitalWrite(ledAzul, 255); digitalWrite(ledAzul, 0);digitalWrite(ledAzul, 0); } }} else if((valorLDR >= 511) & (valorLDR < 575)) else if((valorLDR >= 255) & (valorLDR < 319))else if((valorLDR >= 767) & (valorLDR < 831)) { {{ digitalWrite(ledRojo, 0); digitalWrite(ledRojo, 128);digitalWrite(ledRojo, 255); digitalWrite(ledVerde, 0); digitalWrite(ledVerde, 255);digitalWrite(ledVerde, 255); digitalWrite(ledAzul, 255); digitalWrite(ledAzul, 0);digitalWrite(ledAzul, 128); } }} else if((valorLDR >= 447) & (valorLDR < 511)) else if((valorLDR >= 191) & (valorLDR < 255))else if((valorLDR >= 703) & (valorLDR < 767)) { {{ digitalWrite(ledRojo, 0); digitalWrite(ledRojo, 0);digitalWrite(ledRojo, 128); digitalWrite(ledVerde, 0); digitalWrite(ledVerde, 255);digitalWrite(ledVerde, 255); digitalWrite(ledAzul, 128); digitalWrite(ledAzul, 128);digitalWrite(ledAzul, 255); } }}
  7. 7. else if((valorLDR >= 127) & (valorLDR < else 191)) {{ digitalWrite(ledRojo, 0);digitalWrite(ledRojo, 128); digitalWrite(ledVerde, 0);digitalWrite(ledVerde, 255); digitalWrite(ledAzul, 0);digitalWrite(ledAzul, 128); }} }else if((valorLDR >= 63) & (valorLDR < 127)) void color(int rojo, int verde, int azul){ {digitalWrite(ledRojo, 128); analogWrite(ledRojo, 255-rojo);digitalWrite(ledVerde, 128); analogWrite(ledVerde, 255-verde);digitalWrite(ledAzul, 128); analogWrite(ledAzul, 255-azul);} //Aquí al final posem la escritura del PWM de cada color, per a que eselse if((valorLDR >=0) & (valorLDR < 63)) pugin completar les ordres i{ colors que donem al Arduino.digitalWrite(ledRojo, 55);digitalWrite(ledVerde, 55);digitalWrite(ledAzul, 55); }
  8. 8. Programes cub de LEDS: Exemple dexplosióint Columnas[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};int Filas[] = {12, 11, 10};int t=400;void setup(){int contador;for (int contador = 0; contador < 10; contador++){pinMode(Columnas[contador], OUTPUT); }for (int contador = 0; contador < 4; contador++){pinMode(Filas[contador], OUTPUT); }}void loop(){digitalWrite(Filas[1], HIGH);digitalWrite(Columnas[4], HIGH);delay(t);
  9. 9. for(int i=0;i<t;i++){ if(i%2==0){ digitalWrite(Filas[0], HIGH); digitalWrite(Filas[2], HIGH); digitalWrite(Filas[0], LOW); digitalWrite(Columnas[1], HIGH); digitalWrite(Filas[2], LOW); digitalWrite(Columnas[3], HIGH); digitalWrite(Columnas[1], HIGH); digitalWrite(Columnas[5], HIGH); digitalWrite(Columnas[3], HIGH); digitalWrite(Columnas[7], HIGH); digitalWrite(Columnas[5], HIGH); } digitalWrite(Columnas[7], HIGH); else { } digitalWrite(Filas[0], LOW); else { digitalWrite(Filas[2], LOW); digitalWrite(Columnas[1], LOW); digitalWrite(Columnas[0], HIGH); digitalWrite(Columnas[3], LOW); digitalWrite(Columnas[2], HIGH); digitalWrite(Columnas[5], LOW); digitalWrite(Columnas[8], HIGH); digitalWrite(Columnas[7], LOW); digitalWrite(Columnas[6], HIGH); digitalWrite(Filas[0], HIGH); } digitalWrite(Filas[2], HIGH); delay(1); } } digitalWrite(Filas[0], HIGH); delay(1); digitalWrite(Filas[2], HIGH);} delay(t); for(int j=0; j<t; j++){ for (int contador = 0; contador < 10; contador++){ if(j%2==0){ digitalWrite(Columnas[contador], LOW); } digitalWrite(Columnas[0], LOW); for (int contador = 0; contador < 4; contador++){ digitalWrite(Columnas[2], LOW); digitalWrite(Filas[contador], LOW); } digitalWrite(Columnas[8], LOW); } digitalWrite(Columnas[6], LOW);

×