dissabte, 5 de desembre de 2015

POTENCIOMETRE AMB BARRA DE LEDS


Aquesta programació consisteix en encendre una barra de leds progressivament mitjançant el potenciometre.

El montatge es fa tal i com s'indica a la foto.

A continuació s'estableixen totes les variables que calen per fer el programa i fem el "void setup" el qual fem una cosa nova que es per monotoritzar els valors del potenciometre.

Després fem el "void loop" amb els elements annexat en la progranmació de baix.

PROGRAMACIÓ:

/*BARRA DE LEDS Y POTENCIOMETRO*/
int sensor = A0;
int const x = 1023/11;
int i; // variable comptador per a for
int leds[] = {4,5,6,7,8,9,10,11,12,13};
int temps = 1000;
int o;

 void setup()
 {
   for (i=0;i<10;i++)
  {pinMode (leds[i],OUTPUT);}
  Serial.begin(9600);
 }
  
 void loop()
 {
  int lectura = analogRead(sensor);
  Serial.println(lectura);
  
  if (lectura < x)
  {
    for (i=0; 1<10; i++)
    {digitalWrite (leds[i], LOW);}
  }
else if (lectura < 2*x)
{
   for (i=1; 1<10; i++)
  {digitalWrite (leds[i], LOW);}
  for (o=0; o<1; o++)
  {digitalWrite (leds[o], HIGH);}
}
else if (lectura < 3*x)
{
   for (i=2; 1<10; i++)
  {digitalWrite (leds[i], LOW);}
  for (o=0; o<2; o++)
  {digitalWrite (leds[o], HIGH);}
}
else if (lectura < 4*x)
{
  for (i=3; 1<10; i++)
  {digitalWrite (leds[i], LOW);}
  for (o=0; o<3; o++)
  {digitalWrite (leds[o], HIGH);}
}
else if (lectura < 5*x)
{
   for (i=4; 1<10; i++)
  {digitalWrite (leds[i], LOW);}
  for (o=0; o<4; o++)
  {digitalWrite (leds[o], HIGH);}
}
else if (lectura < 6*x)
{
   for (i=5; 1<10; i++)
  {digitalWrite (leds[i], LOW);}
  for (o=0; o<5; o++)
  {digitalWrite (leds[o], HIGH);}
}
else if (lectura < 7*x)
{
   for (i=6; 1<10; i++)
  {digitalWrite (leds[i], LOW);}
  for (o=0; o<6; o++)
  {digitalWrite (leds[o], HIGH);}
}
else if (lectura < 8*x)
{
  for (i=7; 1<10; i++)
  {digitalWrite (leds[i], LOW);}
  for (o=0; o<7; o++)
  {digitalWrite (leds[o], HIGH);}
}
else if (lectura < 9*x)
{
   for (i=8; 1<10; i++)
  {digitalWrite (leds[i], LOW);}
  for (o=0; o<8; o++)
  {digitalWrite (leds[o], HIGH);}
}
else if (lectura < 10*x)
{
  for (i=9; 1<10; i++)
  {digitalWrite (leds[i], LOW);}
  for (o=0; o<9; o++)
  {digitalWrite (leds[o], HIGH);}
}
else
{
  for (o=0; o<10; o++)
  {digitalWrite (leds[o], HIGH);}
}
 }

ESPELMA DIGITAL

Aquesta pràctica consisteix en la simulació d'una espelma digital mitjançant un LED RGB i un sensor Tilt.

El primer que s'hauria  de fer és el montatge, tal i com es veu en el video.

En la programació primer s'ha de fer és el "void setup" que consisteix en establir si són de sortida o d'entrada, en aquest cas tenim de tots dos (INPUT/OUTPUT).

En el "void loop"  donem l'ordre de encendre a l'atzar (RANDOM) qualsevol dels tres color del LED RGB i el temps també a l'atzar (RANDOM), depenent de si el Tilt esta inclinat (HIGH) o no (LOW)


PROGRAMACIÓ:

/*ESPELMA DIGITAL*/
void setup()
{
  pinMode(13, OUTPUT);
  pinMode(12,OUTPUT); 
  pinMode(11, OUTPUT);
  pinMode(10, INPUT);
}

void loop()
{
  apaga();
  if(digitalRead(10) ==HIGH)
  {digitalWrite((random(10,14)),HIGH);}
  else
  {apaga();}
  delay(random(10,40));
}
 //..................................................
 void apaga()
 {
  digitalWrite(11, LOW);
  digitalWrite(12, LOW);
  digitalWrite(13, LOW);

 }

dimecres, 2 de desembre de 2015

LED AMB TEMPORITZADOR



Aquest programa seria una simulació d'una llum d'escala. El primer seria establir la variable del led, del polsador i del temps.

En el "void setup" establim si és un port de sortida o d'entrada (INPUT/OUTPUT)

En el "void loop" donem les ordres de el temps que volem que estigui encès el led quan li donem al polsador.

El muntatge és fa com s'indica a la fotografía.

PROGRAMACIÓ

/*Encesa d'un LED amb pulsador*/
int LedPin = 13;
int BotoPin = 12;
int temps = 3000;
void setup()
{
  pinMode(LedPin, OUTPUT);
  pinMode(BotoPin,INPUT);
}

void loop()
{
  if(digitalRead(BotoPin) ==HIGH) //
  {digitalWrite(LedPin,HIGH); 
   delay (temps);}
  else
  {digitalWrite(LedPin,LOW);}
}

SIRENA DE POLICIA



Com podeu veure aquest és un programa de simulació d'una sirena de policia. A la fotografia que veieu s'indica el montatge.

El primer que s'ha de fer en el programa es establir les variables dels leds i el temps que han d'estar encès cada led, el següent seria fer la funció del "void setup" i definir si es led és de sortida o d'entrada (INPUT/OUTPUT). Desprès fer la funció del "void loop", en aquesta funció és repeteixen les ordres que tu dones, es posa el temps que està encès i apagat i si s'encèn o no.


dimecres, 11 de novembre de 2015

LED AMB SENSOR D'INCLINACIÓ (TILT)




Aquest programa funciona amb un sensor d'inclinació.

En primer lloc tenim el muntatge, que es fa com s'indica a la fotografia.

Després hem de fer el programa.

Primer establim les variables que hem posat al muntatge.

Després fem el "void setup" i establim si son ports d'entrada o de sortida (INPUT/OUTPUT).

Finalment fem el "void loop" i donem l'ordre de que passi el que volguem segons si el Tilt està inclinat o no, d'aixó depén que el led estigui encès o no.

PROGRAMACIÓ

/*Encesa d'un LED Tilt*/
int LedPin = 9 ;
int Tilt = 10 ;

void setup()
{
  pinMode(LedPin, OUTPUT);
  pinMode(Tilt,INPUT);
}

void loop()
{
  if(digitalRead(Tilt) ==HIGH) //
  {digitalWrite(LedPin,HIGH);} 
  else
  {digitalWrite(LedPin,LOW);}

}

SEMÀFOR





Aquest programa com podeu veure simula un semàfor on utilitzem tres leds, un de color vermell, un altre de groc i finalment un altre de verd.

El primer que s'hauria de fer seria establir les variables dels tres leds i del temps que volem que estigui encès.

A continuació farem el "void setup" on establim si els leds son sortides o entrades digitals (INPUT/OUTPUT).

En el "void loop" donem les ordres per que els leds estiguin el temps que volguem encessos o apagats, en aquest cas com volem que el color groc suigi intermitent com en un semàfor li posem diversos "delay" que és la funció del temps, els demès colors es programen normal.

PROGRAMACIÓ



/* Blink. LED semàfor */

const int led = 11;  // valor constant en tot el programa: pin de connexió del LED
const int temps = 1000;  // valor constant en tot el programa: temps d'encesa i apagada del LED
const int temps2 = 500; //
const int led2 = 10; //
const int led3 = 9;

void setup() 
{
  pinMode(led, OUTPUT);  // configuració del pin del connexió del LED com a sortida digital
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
}

void loop() 
{
  digitalWrite(led, HIGH);  // treu 5V (senyal alt) pel pin corresponent (LED encés) ...
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
  delay(temps);             // ... durant 1 s (1000 ms)
  digitalWrite(led, LOW);   // treu 0V (senyal baix) pel pin corresponent (LED apagat) ...
  digitalWrite(led2, HIGH);
  digitalWrite(led3,LOW);
  delay(temps2);             // ... durant 1 s (1000 ms)
  digitalWrite(led, LOW);   // treu 0V (senyal baix) pel pin corresponent (LED apagat) ...
  digitalWrite(led2, LOW);
  digitalWrite(led3,LOW);
  delay(temps2);             // ... durant 1 s (1000 ms)
  digitalWrite(led, LOW);   // treu 0V (senyal baix) pel pin corresponent (LED apagat) ...
  digitalWrite(led2, HIGH);
  digitalWrite(led3,LOW);
  delay(temps2);             // ... durant 1 s (1000 ms)
  digitalWrite(led, LOW);   // treu 0V (senyal baix) pel pin corresponent (LED apagat) ...
  digitalWrite(led2, LOW);
  digitalWrite(led3,LOW);
  delay(temps2);             // ... durant 1 s (1000 ms)
  digitalWrite(led, LOW);   // treu 0V (senyal baix) pel pin corresponent (LED apagat) ...
  digitalWrite(led2, HIGH);
  digitalWrite(led3,LOW);
  delay(temps2);             // ... durant 1 s (1000 ms)
  digitalWrite(led, LOW);   // treu 0V (senyal baix) pel pin corresponent (LED apagat) ...
  digitalWrite(led2, LOW);
  digitalWrite(led3,LOW);
  delay(temps2);             // ... durant 1 s (1000 ms)
  digitalWrite(led, LOW);   // treu 0V (senyal baix) pel pin corresponent (LED apagat) ...
  digitalWrite(led2, HIGH);
  digitalWrite(led3,LOW);
  delay(temps2);             // ... durant 1 s (1000 ms)
  digitalWrite(led, LOW);   // treu 0V (senyal baix) pel pin corresponent (LED apagat) ...
  digitalWrite(led2, LOW);
  digitalWrite(led3,LOW);
  delay(temps2);             // ... durant 1 s (1000 ms)
  digitalWrite(led,LOW);
  digitalWrite(led2,LOW);
  digitalWrite(led3,HIGH);
  delay(temps);
}