sábado, 12 de março de 2016

GLCD I2C LCM12864J - Arquivo 021

Referência:
http://www.gammon.com.au/forum/?id=10940

Lista de Materiais:

IDE Arduino 1.0.6
1x  Board Arduino UNO
1x  Protoboard 830 furos
1x  Cabo USB-A male to USB-B male 
1x  Conj. de fios jumper p/ protoboard
1x  C.I. MCP23017 Microchip
1x  Trimpot 10k
1x  GLCD LCM12864J

Montagem:








Firmware:
#include <Wire.h>
#include <SPI.h>
#include <I2C_graphical_LCD_display.h>

I2C_graphical_LCD_display lcd;

byte picture [] PROGMEM = {
 0x1C, 0x22, 0x49, 0xA1, 0xA1, 0x49, 0x22, 0x1C,  // face  
 0x10, 0x08, 0x04, 0x62, 0x62, 0x04, 0x08, 0x10,  // star destroyer
 0x4C, 0x52, 0x4C, 0x40, 0x5F, 0x44, 0x4A, 0x51,  // OK logo
};

void setup () {
  lcd.begin ();  
  for (int i = ' '; i <= 0x7f; i++)
    lcd.letter (i);
    lcd.clear (6, 40, 30, 63, 0xFF);
    lcd.gotoxy (40, 40);
    lcd.string ("Nick Gammon.", true);
    lcd.gotoxy (40, 56);
    lcd.blit (picture, sizeof picture);
    lcd.frameRect (40, 49, 60, 53, 1, 1);
    lcd.line (6, 40, 30, 63, 0);   

void loop () {


quinta-feira, 10 de março de 2016

LDR 10mm - Arquivo 020

Referência:
https://inovabots.wordpress.com/tutoriais/arduino/contrle-de-luminosidade-ldrleds/

Lista de Materiais:

IDE Arduino 1.0.6
1x  Board Arduino UNO
1x  Protoboard 830 furos
1x  Cabo USB-A male to USB-B male 
1x  Conj. de fios jumper p/ protoboard
1x  LDR 5mm
1x  Resistor 10k 1/4w

Montagem:







Firmware:

int PinoLeitura = A0;
int ValueLDR;

void setup(){

  Serial.begin(9600);
}

void loop(){

  ValueLDR = analogRead(PinoLeitura);
  Serial.print("Leitura LDR (0 a 1023):");
  Serial.println(ValueLDR);
  delay(500);
}

Download: não necessário

Sensor de temperatura MLX90615 - Arquivo 019

Referência:
http://www.artilhariadigital.com/2014/11/Medir-temperatura-com-sensor-infravermelho-MLX90614-e-Arduino.html

Lista de Materiais:
IDE Arduino 1.0.6
1x  Board Arduino UNO
1x  Protoboard 830 furos
1x  Cabo USB-A male to USB-B male 
1x  Conj. de fios jumper p/ protoboard
1x  Sensor de temperatura MLX90615
2x  Resistor 4,7k 1/4w
1x  Capacitor cerâmico 0,1uF

Montagem:





Firmware:
#include <i2cmaster.h>

void setup(){

Serial.begin(9600);
Serial.println("Setup...");

i2c_init(); //Inicializa a comunicação I2C

PORTC = (1 << PORTC4) | (1 << PORTC5);// Habilita os pullups
}

void loop(){

int dev = 0x5B<<1;
int data_low = 0;
int data_high = 0;
int pec = 0;

i2c_start_wait(dev+I2C_WRITE);

i2c_write(0x07);

i2c_rep_start(dev+I2C_READ);

data_low = i2c_readAck(); //Faz a leitura de 1 byte e depois envia ack
data_high = i2c_readAck(); //Faz a leitura de 1 byte e depois envia ack
pec = i2c_readNak();
i2c_stop();

//Converte os bytes high e low juntos e processa a temperatura, MSB é um bit de erro que é ignorado para temperaturas

double tempFactor = 0.02; // 0.02 graus por LSB (resolução do MLX90615)
double tempData = 0x0000; // Zera os dados 
int frac; // dados apos o ponto decimal

// Mascara o bit de erro do high byte, e depois move para esquerda 8 bits e soma o low byte.

tempData = (double)(((data_high & 0x007F) << 8) + data_low);
tempData = (tempData * tempFactor)-0.01;

float celcius = tempData - 273.15;


Serial.print("Celcius: ");

Serial.println(celcius);

delay(1000); // Espera 1 segundo antes de fornecer uma nova saida.

}

Download: i2cmaster.h

quarta-feira, 9 de março de 2016

Sensor de efeito hall SS41 - Arquivo 018

Referência:
http://labdegaragem.com/profiles/blogs/tutorial-como-utilizar-o-sensor-de-efeito-hall-com-arduino

Lista de Materiais:
IDE Arduino 1.0.6
1x  Board Arduino UNO
1x  Protoboard 830 furos
1x  Cabo USB-A male to USB-B male 
1x  Conj. de fios jumper p/ protoboard
1x  Sensor hall Ss41
1x  Resistor 330R 1/4w

Montagem:








Firmware:

int hallPin = 13;
int statePin = 1, oldstatePin = 1;

void setup(){

  pinMode(hallPin,INPUT);
  Serial.begin(9600);
}

void loop(){

  statePin = digitalRead(hallPin);
  if(statePin == HIGH && oldstatePin == LOW){
    Serial.println("North");
  }
  else if (statePin == LOW && oldstatePin == HIGH){
    Serial.println("South");
  }
  oldstatePin = statePin;
  delay(500);
}

Download: não necessário