martes, 20 de diciembre de 2011

Arduino y ds1307

Bueno en mi preparación de un controlador de acuario con arduino, he sacado el reloj para que no este todo en la misma placa y aqui os dejo unas fotitos. Los pines visto desde la placa de componentes y dejando la tira de pines en la parte de arriba del chip ( FOTO 1):
PIN 1 5 V
PIN 2 SCL
PIN 3 SDA
PIN 4 GND
                                                                      (FOTO 1)
                                                                          (FOTO 2)

miércoles, 19 de octubre de 2011

Mando Universal de Television para NIKON D-3000

Despues de mucho darle vueltas, encontre que se puede utilizar un mando remoto para la nikon d-3000 y vale cualquier mando a distancia universal de television, que sea compatible con SANYO. El modelo de mi mando es URC-L-1870 y me funciona en SANYO codigo 074. Todas las teclas sirven para lanzar las fotos.

viernes, 7 de octubre de 2011

Pinout de algunos componentes

DS18B20:
 Con la parte plana hacia a ti, y de izquierda a derecha:
Pin 1 GND
Pin 2 ARDUINO
Pin 3 5 Voltios.

Hay varias formas de montarlo el que yo uso es puenteando el pin2 con el pin 3 con una resistencia de 4K7.

DS1307:
El punto que se ve en la superficie del chip nos indica el pin 1:
Pin 1 (x1): Cristal 32768 Patilla 1
Pin 2 (x2): Cristal 32768 Patilla 2
Pin 3 (Vbat): Positivo de la Pila
Pin 4 (Gnd): Negativo de la Pila
Pin 5 (Parte inferior derecha) (SDA): Pin Analogico 5 del arduino
Pin 6 (SCL): Pin Analogico 4 del arduino
Pin 7 (SQW/OUT): No conectado
                                                      Pin 8 (Vcc): 5 Voltios, se monta un condensador de 0,1 micro yo no lo monto.
NOTAS:
Entre el pin 5 y el pin 8 resistencia 22K y entre el pin 6 y el pin 8 otra del mismo valor.

SHT15:


El pinout suele venir impreso pero aqui lo dejo, visto de cara donde esta el componente el pin 1 queda a tu izquierda y el 4 a tu derecha:
Pin 1 GND
Pin 2 SCK: Pin 3 de arduino
Pin 3 DATA: Pin 4 de arduino
Pin 4 Vcc: 5 V




TECLADO:


Pinout visto con el teclado hacia ti pin 1 a tu izquierda pin 9 a tu derecha:
Pin 1 : No conecto
Pin 2 : Columna 1
Pin 3 : Fila 0
Pin 4 : Columna 0
Pin 5 : Fila 3
Pin 6 : Columna 2
Pin 7 : Fila 2
Pin 8 : Fila 1
Pin 9 : No conectado

Recogido para el proyecto de control de acuario.

miércoles, 1 de junio de 2011

El color de la temperatura

Con un Led RGB, Arduino, 3 resistencia de 1 K , 1 de 4K7 y por ultimo un sensor ds18b20, se puede hacer un simple termómetro gráfico. Buscando por internet siempre encontraba termómetros graficos con sensores analógicos pero con este ds18b20 ninguno, asi que imaginando y teniendo la base del analógico saque este código:

#include <OneWire.h>
#include <DallasTemperature.h>

// Definimos el pin 8 de arduino para el sensor de temperatura ds18b20
#define ONE_WIRE_BUS 8



// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);


DallasTemperature sensors(&oneWire);
int redPin = 9; //El pin 9 de arduino para la patilla del color rojo del led rgb
int bluePin = 11; //El pin 11 para color azul
int greenPin = 10; //El pin 10 para color Verde
int valor,i,j;

void setup(void)
{
  // start serial port
  Serial.begin(9600);
  // Start up the library
  sensors.begin();
  pinMode(redPin,OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void loop(void)
{
  sensors.requestTemperatures(); // Enviamos el comando para obtener la temperatura
  valor = sensors.getTempCByIndex(0);
  Serial.println(sensors.getTempCByIndex(0)); // Imprimimos el valor de la temperatura para guiarnos un poco
  if (valor < 18){
    analogWrite(bluePin,64);
    delay(3000);
    j=255;
    for(i=64;i<=255;i++){
      j--;
      delay(50);
      analogWrite(redPin,0);
      analogWrite(greenPin,0);
      analogWrite(bluePin,i);
    }
  }
  else if ((valor >= 18) && (valor < 23)){
    analogWrite(bluePin,64);
    delay (3000);
    j=255;
    for (i=64; i<=255; i++){
      j--;
      delay(50);
      analogWrite(redPin,0);
      analogWrite(greenPin,i);
      analogWrite(bluePin,64);
    }
  }
  else if ((valor >= 23) && (valor < 28)){
    analogWrite (greenPin,64);
    delay (3000);
    j=255;
    for (i=64; i<=255; i++){
      j--;
      delay(50);
      analogWrite(redPin,i);
      analogWrite(greenPin,64);
      analogWrite(bluePin, 0);
    }
  }
  else if (valor >= 28){
    analogWrite (redPin, 64);
    delay (3000);
    j=255;
    for (i=64; i<=255; i++){
      j--;
      delay(50);
      analogWrite(redPin,64);
      analogWrite(greenPin,0);
      analogWrite(bluePin, 0);
    }
  }
     
}
El codigo se puede mejorar y mucho pero solo queria saber si se podia hacer y aqui esta, subo unas fotitos para verlo como lo monte.