domingo, 22 de setembro de 2013

2° Passo

Nova atualização V 1.1

Nessa atualização do software do Arduíno incluímos uma escala de porcentagem em numero e barras e mudamos a forma de reação do LED pois na versão 1.0 o LED ficava mais forte com a intensidade da luz ambiente bem clara o que deveria ser ao contrario, nessa versão V 1.1 arrumamos isso.

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

byte a[8] = { 0b10000, 
0b10000,  
0b10000,
0b10000,
0b10000,
0b10000,
0b10000,
0b10000
};

byte b[8] = { 0b11000, 
0b11000,  
0b11000,
0b11000,
0b11000,
0b11000,
0b11000,
0b11000
};

byte c[8] = { 0b11100, 
0b11100,  
0b11100,
0b11100,
0b11100,
0b11100,
0b11100,
0b11100
};

byte d[8] = { 0b11110, 
0b11110,  
0b11110,
0b11110,
0b11110,
0b11110,
0b11110,
0b11110
};

byte e[8] = { 0b11111, 
0b11111,  
0b11111,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111
};


int sensorPin = A0;    
int sensorValue = 0; 
int outputValue = 0;  
int led = 9; 
int outputLed = 0; 

void oi(){
  lcd.setCursor(0, 0);
  lcd.print("LDR");
  sensorValue = analogRead(sensorPin);   
  outputValue = map(sensorValue, 0, 1023, 0, 100);    
  lcd.setCursor(4, 0);
  lcd.print(outputValue);   
  outputLed = sensorValue;
  outputLed = map(sensorValue, 0, 1023, 255, 0);    
  analogWrite(led, outputLed);
  delay(100);
  lcd.clear();

void setup() {
  lcd.begin(16, 2);
  pinMode(led, OUTPUT);
  lcd.createChar(1, a);
  lcd.createChar(2, b);
  lcd.createChar(3, c);
  lcd.createChar(4, d);
  lcd.createChar(5, e);
}

void loop() {
  int programas = map(sensorValue, 0, 1023, 1, 80);
  switch (programas){     
    case 1:lcd.setCursor(0, 1);lcd.write(1); oi();break;
    case 2:lcd.setCursor(0, 1);lcd.write(2); oi();break;
    case 3:lcd.setCursor(0, 1);lcd.write(3); oi();break;
    case 4:lcd.setCursor(0, 1);lcd.write(4); oi();break;
    case 5:lcd.setCursor(0, 1);lcd.write(5); oi();break;
    case 6:lcd.setCursor(1, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5); oi();break;
    case 7:lcd.setCursor(1, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5); oi();break;
    case 8:lcd.setCursor(1, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5); oi();break;
    case 9:lcd.setCursor(1, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5); oi();break;
    case 10:lcd.setCursor(1, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5); oi();break;
    case 11:lcd.setCursor(2, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5); oi();break;
    case 12:lcd.setCursor(2, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5); oi();break;
    case 13:lcd.setCursor(2, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5); oi();break;
    case 14:lcd.setCursor(2, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5); oi();break;
    case 15:lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5); oi();break;
    case 16:lcd.setCursor(3, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5); oi();break;
    case 17:lcd.setCursor(3, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5); oi();break;
    case 18:lcd.setCursor(3, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5); oi();break;
    case 19:lcd.setCursor(3, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5); oi();break;
    case 20:lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5); oi();break;
    case 21:lcd.setCursor(4, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5); oi();break;
    case 22:lcd.setCursor(4, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5); oi();break;
    case 23:lcd.setCursor(4, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5); oi();break;
    case 24:lcd.setCursor(4, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5); oi();break;
    case 25:lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5); oi();break;
    case 26:lcd.setCursor(5, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5); oi();break;
    case 27:lcd.setCursor(5, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5); oi();break;
    case 28:lcd.setCursor(5, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5); oi();break;
    case 29:lcd.setCursor(5, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5); oi();break;
    case 30:lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5); oi();break;
    case 31:lcd.setCursor(6, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5); oi();break;
    case 32:lcd.setCursor(6, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5); oi();break;
    case 33:lcd.setCursor(6, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5); oi();break;
    case 34:lcd.setCursor(6, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5); oi();break;
    case 35:lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5); oi();break;
    case 36:lcd.setCursor(7, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5); oi();break;
    case 37:lcd.setCursor(7, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5); oi();break;
    case 38:lcd.setCursor(7, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5); oi();break;
    case 39:lcd.setCursor(7, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5); oi();break;
    case 40:lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5); oi();break;
    case 41:lcd.setCursor(8, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5); oi();break;
    case 42:lcd.setCursor(8, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5); oi();break;
    case 43:lcd.setCursor(8, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5); oi();break;
    case 44:lcd.setCursor(8, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5); oi();break;
    case 45:lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5); oi();break;
    case 46:lcd.setCursor(9, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5); oi();break;
    case 47:lcd.setCursor(9, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5); oi();break;
    case 48:lcd.setCursor(9, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5); oi();break;
    case 49:lcd.setCursor(9, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5); oi();break;
    case 50:lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5); oi();break;
    case 51:lcd.setCursor(10, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5); oi();break;
    case 52:lcd.setCursor(10, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5); oi();break;
    case 53:lcd.setCursor(10, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5); oi();break;
    case 54:lcd.setCursor(10, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5); oi();break;
    case 55:lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5); oi();break;
    case 56:lcd.setCursor(11, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5); oi();break;
    case 57:lcd.setCursor(11, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5); oi();break;
    case 58:lcd.setCursor(11, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5); oi();break;
    case 59:lcd.setCursor(11, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5); oi();break;
    case 60:lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5); oi();break;
    case 61:lcd.setCursor(12, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5); oi();break;
    case 62:lcd.setCursor(12, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5); oi();break;
    case 63:lcd.setCursor(12, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5); oi();break;
    case 64:lcd.setCursor(12, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5); oi();break;
    case 65:lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5); oi();break;
    case 66:lcd.setCursor(13, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5); oi();break;
    case 67:lcd.setCursor(13, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5); oi();break;
    case 68:lcd.setCursor(13, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5); oi();break;
    case 69:lcd.setCursor(13, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5); oi();break;
    case 70:lcd.setCursor(13, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5); oi();break;
    case 71:lcd.setCursor(14, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5); oi();break;
    case 72:lcd.setCursor(14, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5); oi();break;
    case 73:lcd.setCursor(14, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5); oi();break;
    case 74:lcd.setCursor(14, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5); oi();break;
    case 75:lcd.setCursor(14, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5); oi();break;
    case 76:lcd.setCursor(15, 1);lcd.write(1);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5);lcd.setCursor(14, 1);lcd.write(5); oi();break;
    case 77:lcd.setCursor(15, 1);lcd.write(2);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5);lcd.setCursor(14, 1);lcd.write(5); oi();break;
    case 78:lcd.setCursor(15, 1);lcd.write(3);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5);lcd.setCursor(14, 1);lcd.write(5); oi();break;
    case 79:lcd.setCursor(15, 1);lcd.write(4);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5);lcd.setCursor(14, 1);lcd.write(5); oi();break;
    case 80:lcd.setCursor(15, 1);lcd.write(5);lcd.setCursor(0, 1);lcd.write(5);lcd.setCursor(1, 1);lcd.write(5);lcd.write(5);lcd.setCursor(2, 1);lcd.write(5);lcd.setCursor(3, 1);lcd.write(5);lcd.setCursor(4, 1);lcd.write(5);lcd.setCursor(5, 1);lcd.write(5);lcd.setCursor(6, 1);lcd.write(5);lcd.setCursor(7, 1);lcd.write(5);lcd.setCursor(8, 1);lcd.write(5);lcd.setCursor(9, 1);lcd.write(5);lcd.setCursor(10, 1);lcd.write(5);lcd.setCursor(11, 1);lcd.write(5);lcd.setCursor(12, 1);lcd.write(5);lcd.setCursor(13, 1);lcd.write(5);lcd.setCursor(14, 1);lcd.write(5); oi();break;
    
    break;}    
}

Código comentado

Essa nova atribuição no software mudou a forma de manipular o LED agora quanto menor a intensidade de luz do ambiente maior o LED vai clarear, isso por conta de uma simples mudança na função MAP:
- LED vai clarear com mais luz ambiente
  outputLed = map(sensorValue, 0, 1023, 0, 255);    
- LED vai clarear com menos luz ambiente
  outputLed = map(sensorValue, 0, 1023, 255, 0);  



Todo o código na função Loop  entre o  " switch (programas){"  e o  " break;} "   é para criar no LCD uma barra visual de porcentagem.


Vídeo 
Reparem a escala numérica e em barras da porcentagem e o led variando a intensidade apartir do PWM.




Videos

Ola galera, segue abaixo alguns videos pra vocês poderem acompanhar como anda o projeto.










sábado, 21 de setembro de 2013

Datasheet LDR

Ola galera.

No post de hoje trago o datasheet do sensor de luz que estamos utilizando, o LDR, lembrando que o motivo da sua escolha foi o seu custo beneficio que é excelente, e ao fato de apresentar uma sensibilidade semelhante ao espectro visível, sendo assim o mais indicado para o controle de intensidade de iluminação.

http://www.biltek.tubitak.gov.tr/gelisim/elektronik/dosyalar/40/LDR_NSL19_M51.pdf

sexta-feira, 20 de setembro de 2013

1° Passo

Ola galera.

Resolvemos fazer um passo a passo do nosso projeto para ficar fácil de todos entenderem, pois bem esse vai ser o nosso primeiro passo a passo e hoje o foco sera a parte física do projeto onde sera apresentado todo o embasamento pratico do circuito sem entrar em muito detalhes teóricos a grande parte teórica ficara para nosso segundo tutorial.

Nosso projeto até o momento constitui de realizar testes de aquisição e manipulação de dados, já que o projeto final tem como finalidade controlar a intensidade luminosa de um ambiente através de uma lampada sendo regulada através de um processo automático que sera realizado pelo nosso Arduíno através da aquisição de dados de um sensor LDR.

Lista de material

- Arduino UNO
- Sensor de luminosidade LDR
 - Protoboard para realizar os teste
- Resistores para começar a regular a sensibilidade do LDR
- Led para teste 
- Alguns fios para ligação no proto

Segue fotos da montagem pratica:



Segue o programa v 1.0:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int sensorPin = A0;    
int sensorValue = 0; 
int outputValue = 0;  
int led = 9; 

void setup() {
  lcd.begin(16, 2);
  pinMode(led, OUTPUT);
}

void loop() {
  lcd.setCursor(0, 0);
  lcd.print("LDR");
  sensorValue = analogRead(sensorPin);   
  outputValue = map(sensorValue, 0, 350, 0, 100);    
  lcd.setCursor(6, 0);
  lcd.print(sensorValue);
  lcd.setCursor(0, 1);
  lcd.print(outputValue);
  analogWrite(led, sensorValue);
  delay(100);
  lcd.clear();
Código comentado:

Nesse ponto adicionamos a biblioteca do LCD e atribuímos os pinos de comunicação
 * LCD RS pino 12
 * LCD pino 11
 * LCD D4 pino 5
 * LCD D5 pino 4
 * LCD D6 pino 3
 * LCD D7 pino 2
 * LCD R/W pino GND
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Adicionamos o pino A0 como entrada do nosso LDR e o pino 9 como saída de PWM para nosso LED e suas variáveis para manipulação de dados.
int sensorPin = A0;    
int sensorValue = 0; 
int outputValue = 0;  
int led = 9; 

Pegamos o sinal de entrada pela porta analógica A0 e salvamos na variavel " sensorValue"
  sensorValue = analogRead(sensorPin);   

Construímos um "map" entre os valores de 0 a 350 de entrada ele fara uma regra de 3 e processara em dados de 0 a 100 e vai imprimir no LCD.
  outputValue = map(sensorValue, 0, 350, 0, 100);    
  lcd.setCursor(6, 0);
  lcd.print(sensorValue);

Com os dados em sensorValue iremos controlar a intensidade do LED através de PWM
  analogWrite(led, sensorValue);
  delay(100);
Segue as fotos do nosso circuito:









OBS: Esse é o nosso primeiro teste vários fatores serão melhorados, no próximo passo a passo iremos regular a sensibilidade e fazer a mostragem dos dados em escala de porcentagem.