10 jul 2012

Comprar electrónica

Como todo en general es normal que al empezar no sepamos encontrar las tiendas que más nos convienen. A modo de ayuda os dejo una tabla donde pongo el precio de los mismos componentes en mismo dia en distintas tiendas. Compara la mediana de todos los productos y hay un total para ver el balance de la tienda.


                    Atmega328  74HC595N  Arduino Uno  LM35     LM358    Total*
rs-online 4,31€ 0,47€ 21,72€2,51€0,28€7,57€
farnell 5,79€ 0,56€ 25,64€1,81€0,23€8,39€
digikey 2,54€ 0,53€ 23,43€1,39€0,40€4,86€
mouser 1,70€ 0,58€ 20,63€ 1,60€0,38€ 4,26€
ondaradio - 0,47€ -1,66€0,62€-
diotronic -0,26€ -0,86€0,12€-
bricogeek 7,00€ 1,60€ 23,48€-- -
futurelect 3,30€ 0,50€ -1,95€0,18€5,93€
sparkfun $5,50 $1,50 $29,95-$0,95-
elactan 6,00€ 0,32€ 21,90€ 2,18€0,41€8.92€
media 3,83€ 0,68€ 22,80€ 1,75€0,32€6,65€


Algunas son muy caras pero tienen piezas que son difíciles o imposibles de encontrar en otras.

La decisión final donde compramos es nuestra (vuestra) pues a veces vale la pena pagar más por la confianza, por atencion o trato al cliente o por tiempo de respuesta.

nota: los precios son orientativos y canvian en el tiempo pero supongo que sirven para hacerse una idea de donde comprar. Además hay que tener en cuenta los portes.

*sin placa arduino

Utilidades. Calculadoras en internet.

Os dejo un recopilatorio de enlaces sobre calculadoras varias en internet:


Otras calculadoras
- http://www.calculatoredge.com/spanish.htm#electronics

Espero que alguna os sea tan útil como lo son para mi.

3 jul 2012

Sensor de temperatura MLX90614

Otro sensor de temperatura. Este a diferencia de los demas mide la temperatura por infrarrojos por lo que no necesita contactar con el cuerpo para medir la temperatura. También funciona con el protocolo i2c. Por si se necesitan más detalles aqui va el datasheet del mlx90614

Actualizado:


Y aqui el código .ino para el arduino

#include <Wire.h>
 
void setup(){
Serial.begin(9600);
Serial.println("Setup...");

i2c_init(); //Initialise the i2c bus
PORTC = (1 << PORTC4) | (1 << PORTC5);//enable pullups
}
 
void loop(){
    int dev = 0x5A<<1;
    int data_low = 0;
    int data_high = 0;
    int pec = 0;
 
    i2c_start_wait(dev+I2C_WRITE);
    i2c_write(0x07);
 
    // read
    i2c_rep_start(dev+I2C_READ);
    data_low = i2c_readAck(); //Read 1 byte and then send ack
    data_high = i2c_readAck(); //Read 1 byte and then send ack
    pec = i2c_readNak();
    i2c_stop();
 
    //This converts high and low bytes together and processes temperature, MSB is a error bit and is ignored for temps
    double tempFactor = 0.02; // 0.02 degrees per LSB (measurement resolution of the MLX90614)
    double tempData = 0x0000; // zero out the data
    int frac; // data past the decimal point
 
    // This masks off the error bit of the high byte, then moves it left 8 bits and adds the low byte.
    tempData = (double)(((data_high & 0x007F) << 8) + data_low);
    tempData = (tempData * tempFactor)-0.01;
 
    float celcius = tempData - 273.15;
    float fahrenheit = (celcius*1.8) + 32;
 
    Serial.print("Celcius: ");
    Serial.println(celcius);
 
    Serial.print("Fahrenheit: ");
    Serial.println(fahrenheit);
 
    delay(1000); // wait a second before printing again
}


Os dejo los enlaces para descargar el archivo fritzing y el código fuente