Pages: [1]   Go Down
Author Topic: Ayudita con Arduino  (Read 443 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola gente!

Bueno, Soy Fermin. Y soy tremendamente burro con Arduino.
De aquí y alla he copiado y pegado código hasta conseguir que funcione un termómetro con el sensor DS18B20 y una pantalla PCD8544.
Funciona excelente, peeeerooo, en la grafica que sale en la pantallita abajo no muestra las temperaturas negativas. El marcador de arriba si las muestra, pero la grafica no. Joder que mal me explico... jejjej.
Bueno, ahora pongo el código para que veais.
También me gustaría poder enviar los datos por bluetooth. MeetAndroid creo que se llama la librería. Estoy totalmente pez. He mirado códigos de MeetAndroid y no me aclaro.

Podeis ayudarme, please?

Gracias!!!!


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

#define ONE_WIRE_BUS 2
static const byte ledPin = 13;

// The dimensions of the LCD (in pixels)...
static const byte LCD_WIDTH = 84;
static const byte LCD_HEIGHT = 48;

// The number of lines for the temperature chart...
static const byte CHART_HEIGHT = 5;

// A custom "degrees" symbol...
static const byte DEGREES_CHAR = 1;
static const byte degrees_glyph[] = {
  0x00, 0x07, 0x05, 0x07, 0x00 };

// A bitmap graphic (10x2) of a thermometer...
static const byte THERMO_WIDTH = 10;
static const byte THERMO_HEIGHT = 2;
static const byte thermometer[] = {
  0x00, 0x00, 0x48, 0xfe, 0x01, 0xfe, 0x00, 0x02, 0x05, 0x02,
  0x00, 0x00, 0x62, 0xff, 0xfe, 0xff, 0x60, 0x00, 0x00, 0x00};

OneWire oneWire(ONE_WIRE_BUS);
static PCD8544 lcd;
DallasTemperature sensores(&oneWire);

float valor1=0; // variable donde guardaremos la temperatura leida del sensor

void setup() {
  lcd.begin(LCD_WIDTH, LCD_HEIGHT);
  Serial.begin(9600);
 
  // Register the custom symbol...
  lcd.createChar(DEGREES_CHAR, degrees_glyph);

  pinMode(ledPin, OUTPUT);
 
}

void loop() {
  sensores.requestTemperatures(); //Enviamos el comando para obtener la temperatura
  float valor1 =  sensores.getTempCByIndex(0);

  // Start beyond the edge of the screen...
  static byte xChart = LCD_WIDTH;

  digitalWrite(ledPin, HIGH);

  // Read the temperature
  float temp = (analogRead(valor1));
  Serial.print("La temperatura es: ");
  Serial.print(valor1);
  Serial.print( " C\n");
  // Print the temperature (using the custom "degrees" symbol)...
  lcd.setCursor(0, 0);
  lcd.print("TEMP: ");
  lcd.print(valor1, 1);
  lcd.print(" \001C ");

  // Draw the thermometer bitmap at the bottom left corner...
  lcd.setCursor(0, LCD_HEIGHT/8 - THERMO_HEIGHT);
  lcd.drawBitmap(thermometer, THERMO_WIDTH, THERMO_HEIGHT);

  // Wrap the chart's current position...
  if (xChart >= LCD_WIDTH) {
    xChart = THERMO_WIDTH + 2;
  }

  // Update the temperature chart... 
  lcd.setCursor(xChart, 1);
  lcd.drawColumn(CHART_HEIGHT, map(valor1, 0, 50, 0, CHART_HEIGHT*smiley-cool);  // ...clipped to the 0-50C range.
  lcd.drawColumn(CHART_HEIGHT, 0);         // ...with a clear marker to see the current chart position.

  xChart++;

  digitalWrite(ledPin, LOW); 
  delay(500);
}
Logged

Pages: [1]   Go Up
Jump to: