Mostrando entradas con la etiqueta arduino. Mostrar todas las entradas
Mostrando entradas con la etiqueta arduino. Mostrar todas las entradas

martes, 21 de octubre de 2014

Arduino + LCD Keypad Shield + LCD Smartie 5.4

Hola a todos.

Iniciamos este nuevo proyecto con un vídeo de como quedo el trabajo terminado.


Materiales:

- Arduino 1
- LCD Keyboard Shield
- Cable USB (De esos de impresora)
- PC con windows para manipular el software.

Procedimiento:

1) Como todos sabemos conectar un arduino y un shield omitiremos esa parte.

2) El codigo:


martes, 14 de mayo de 2013

Avance: Servidor de temperatura

Ya vimos en nuestro articulo anterior como programar nuestro arduino para lo que necesitamos  hoy ya con el proyecto ya terminado subiré algunas imágenes mientras preparo la guía de configuración para la Raspberry PI.



Estas son imágenes de el arduino con el sensor y el led montados sobre una protoboard.


Las Raspberry PI con sus disipadores.




Pruebas y puesta en marcha a produccion.


Grafico de prueba.

Espero esta semana tener lista la guía de implementacion completa.

Saludos

martes, 7 de mayo de 2013

Arduino + DS18S20

Hola a todos.

Lo siguiente es la primera parte de un proyecto que estoy montando, este consiste en monitorear la temperatura dentro de una oficina y luego entregar los resultados vía web a los usuarios.

En esta parte hablaremos sobre como montar el sensor DS18S20 y capturar la información vía comunicación serial.

Materiales:
- Arduino uno.
- Sensor DS18S20.
- Resistencia de 4,7k o en su defecto 10k

Montaje :

Este es un diagrama básico de como de como montar el sensor en el Arduino, en mi caso yo use una resistencia de 10k y me trabajo bien. Aunque según los entendidos con una de 4,7k tienes menor perdida en razón de la distancia.

Yo ademas monte un Led en los puertos digitales, entre GND y el Pin 12 para saber cuando el servidor consulta la temperatura al Arduino.

El Arduino trabajara de la siguiente manera:
- El Arduino permanece a la escucha del puerto serial.
- Al recibir el valor 1 este prenderá un led durante el tiempo que dure el proceso.
- Arduino obtendrá el valor entregado por el sensor y lo enviara como respuesta vía comunicación serial.
- Se apagara el led para indicar que la comunicación finalizo.

El codigo es el siguiente:

#include <OneWire.h> 

int datoin =  0;
int DS18S20_Pin = 2; //DS18S20 usara pin 2 digital para la señal

//Temperature chip i/o
OneWire ds(DS18S20_Pin);

void setup(void) {
  pinMode(12, OUTPUT); 
  Serial.begin(9600);
}

void loop(void) {
     if (Serial.available()) {
          datoin=Serial.read();  
          switch (datoin) {
               case '1':
                    digitalWrite(12,HIGH);
                    delay(100);
                    float temperature = getTemp();
                    Serial.println(temperature);
                    delay(100); 
                    digitalWrite(12,LOW);
                          }
                               }
}


float getTemp(){
 //returns the temperature from one DS18S20 in DEG Celsius

 byte data[12];
 byte addr[8];

 if ( !ds.search(addr)) {
   //no more sensors on chain, reset search
   ds.reset_search();
   return -1000;
 }

 if ( OneWire::crc8( addr, 7) != addr[7]) {
   Serial.println("CRC is not valid!");
   return -1000;
 }

 if ( addr[0] != 0x10 && addr[0] != 0x28) {
   Serial.print("Device is not recognized");
   return -1000;
 }

 ds.reset();
 ds.select(addr);
 ds.write(0x44,1); 

 byte present = ds.reset();
 ds.select(addr);  
 ds.write(0xBE); 


 for (int i = 0; i < 9; i++) { 
  data[i] = ds.read();
 }

 ds.reset_search();

 byte MSB = data[1];
 byte LSB = data[0];

 float tempRead = ((MSB << 8) | LSB);
 float TemperatureSum = tempRead / 16;

 return TemperatureSum;

}


La librería OneWire deben instalarla en el compilador o sino aparecerá un error al compilar.

Espero que les sirva.
Saludos.

Busqueda: Placa arduino

lunes, 17 de diciembre de 2012

Marcha Imperial con Arduino

Bueno el proyecto no es de mi autoria, pero de ise unos cambios ya que no se si el puerto que ocupaba requería resistencia...

Mas tarde subiré un vídeo mostrando como quedo.


int ledPin = 13;
//led for visualization (use 13 for built-in led)

int speakerPin = 6;
//speaker connected to one of the PWM ports

#define c 261
#define d 294
#define e 329
#define f 349
#define g 391
#define gS 415
#define a 440
#define aS 455
#define b 466
#define cH 523
#define cSH 554
#define dH 587
#define dSH 622
#define eH 659
#define fH 698
#define fSH 740
#define gH 784
#define gSH 830
#define aH 880
//frequencies for the tones we're going to use
//used http://home.mit.bme.hu/~bako/tonecalc/tonecalc.htm to get these

void setup()
{
  pinMode(ledPin, OUTPUT);
  // sets the ledPin to be an output
  pinMode(speakerPin, OUTPUT);
  //sets the speakerPin to be an output
}
 
void loop() // run over and over again
{
  march();
}
 
void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds)
{
    digitalWrite(ledPin, HIGH);
    //use led to visualize the notes being played
 
    int x;
    long delayAmount = (long)(1000000/frequencyInHertz);
    long loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2));
    for (x=0;x<loopTime;x++)
    {
        digitalWrite(speakerPin,HIGH);
        delayMicroseconds(delayAmount);
        digitalWrite(speakerPin,LOW);
        delayMicroseconds(delayAmount);
    }
 
    digitalWrite(ledPin, LOW);
    //set led back to low
 
    delay(20);
    //a little delay to make all notes sound separate
}
 
void march()
{
    //for the sheet music see:
    //http://www.musicnotes.com/sheetmusic/mtd.asp?ppn=MN0016254
    //this is just a translation of said sheet music to frequencies / time in ms
    //used 500 ms for a quart note
 
    beep(speakerPin, a, 500);
    beep(speakerPin, a, 500);  
    beep(speakerPin, a, 500);
    beep(speakerPin, f, 350);
    beep(speakerPin, cH, 150);
 
    beep(speakerPin, a, 500);
    beep(speakerPin, f, 350);
    beep(speakerPin, cH, 150);
    beep(speakerPin, a, 1000);
    //first bit
 
    beep(speakerPin, eH, 500);
    beep(speakerPin, eH, 500);
    beep(speakerPin, eH, 500);  
    beep(speakerPin, fH, 350);
    beep(speakerPin, cH, 150);
 
    beep(speakerPin, gS, 500);
    beep(speakerPin, f, 350);
    beep(speakerPin, cH, 150);
    beep(speakerPin, a, 1000);
    //second bit...
 
    beep(speakerPin, aH, 500);
    beep(speakerPin, a, 350);
    beep(speakerPin, a, 150);
    beep(speakerPin, aH, 500);
    beep(speakerPin, gSH, 250);
    beep(speakerPin, gH, 250);
 
    beep(speakerPin, fSH, 125);
    beep(speakerPin, fH, 125);  
    beep(speakerPin, fSH, 250);
    delay(250);
    beep(speakerPin, aS, 250);  
    beep(speakerPin, dSH, 500);
    beep(speakerPin, dH, 250);
    beep(speakerPin, cSH, 250);
    //start of the interesting bit
 
    beep(speakerPin, cH, 125);
    beep(speakerPin, b, 125);
    beep(speakerPin, cH, 250);    
    delay(250);
    beep(speakerPin, f, 125);
    beep(speakerPin, gS, 500);
    beep(speakerPin, f, 375);
    beep(speakerPin, a, 125);
 
    beep(speakerPin, cH, 500);
    beep(speakerPin, a, 375);
    beep(speakerPin, cH, 125);
    beep(speakerPin, eH, 1000);
    //more interesting stuff (this doesn't quite get it right somehow)
 
    beep(speakerPin, aH, 500);
    beep(speakerPin, a, 350);
    beep(speakerPin, a, 150);
    beep(speakerPin, aH, 500);
    beep(speakerPin, gSH, 250);
    beep(speakerPin, gH, 250);
 
    beep(speakerPin, fSH, 125);
    beep(speakerPin, fH, 125);  
    beep(speakerPin, fSH, 250);
    delay(250);
    beep(speakerPin, aS, 250);  
    beep(speakerPin, dSH, 500);
    beep(speakerPin, dH, 250);
    beep(speakerPin, cSH, 250);
    //repeat... repeat
 
    beep(speakerPin, cH, 125);
    beep(speakerPin, b, 125);
    beep(speakerPin, cH, 250);    
    delay(250);
    beep(speakerPin, f, 250);
    beep(speakerPin, gS, 500);
    beep(speakerPin, f, 375);
    beep(speakerPin, cH, 125);
         
    beep(speakerPin, a, 500);          
    beep(speakerPin, f, 375);          
    beep(speakerPin, c, 125);          
    beep(speakerPin, a, 1000);    
    //and we're done \ó/  
}

Fuente : https://gist.github.com

Busqueda: Placa Arduino Uno

Arduino: Hola Mundo Led

Este el el programa mas simple para hacer con nuestro Arduino. Consiste en hacer que un led prenda y apague en determinados tiempos.

Se le ha agregado un adicional para que muestre el estatus en el monitor serial.



//------------------------------------
//Declara puertos de entradas y salidas
//------------------------------------
int ledPin =  13;    // Declara el LED en el Pin 13
 //------------------------------------
//Funcion principal
//------------------------------------
void setup()              // Esta función corre cada vez que se
           //inicia el Arduino
{              
    pinMode(ledPin, OUTPUT);  // Inicializa el LED como una salida
    Serial.begin(9600);
}

//------------------------------------
//Funcion ciclicla
//------------------------------------
void loop()                 // Esta funcion se mantiene ejecutando
      // cuando este energizado el Arduino
{
  Serial.println("Led ON");
  digitalWrite(ledPin, HIGH);   // Enciende el LED
  delay(100);  // Temporiza un segundo (1s = 1000ms)
  Serial.println("Led OFF");
  digitalWrite(ledPin, LOW);    // Apaga el LED
  delay(3000);                  // Temporiza un segundo (1s = 1000ms)
}    




Fuente : http://www.cosasdemecatronica.com