INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 1 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Funkthermometer mit 7 Segmentanzeige-bitte um Hilfe
14.07.2015, 11:07
Beitrag #1
Funkthermometer mit 7 Segmentanzeige-bitte um Hilfe
Hallo,
ich will mir ein Funkthermometer mit Schieberegister 595 und zwei 7 Segmentanzeigen bauen.
Soweit habe ich alles zusammen und auf dem Steckboard montiert.
Als Sensor verwende ich einen LM35 und RF Sender/Empfänger 433mhz.
Soweit funktioniert es auch, nur die erste Stelle wird immer mit 2 angezeigt, die zweite läuft normal. Also alles was im Bereich von 20-29 Grad ist zeigt es auch richtig an. Bei 30 Grad zeigt es aber wieder 20 an.
Im Seriellen Monitor werden die Werte aber richtig angezeigt.
Wo habe ich den Fehler???
Bitte um Hilfe!!!!!

Sender:
#include <VirtualWire.h>

// Declarando pinos para transmissao (RF TX 433 MHz)
const int SENSOR = A0;
const int LED = 13;
const int TX = 3;

void setup() {
// Comunicacao com o Serial Monitor
Serial.begin(9600); // baud-rate
Serial.println("Transmissor");

// Inicializando E/S do transmissor
vw_set_tx_pin(TX);
vw_set_ptt_inverted(true); // Requerido para DR3100
vw_setup(5000); // Bits por segundos
}

void loop() {
// Funcoes do Sensor - Calculos
int D = analogRead(SENSOR);
int T = (D * 5 * 100) / 1023;

Serial.print(T);
Serial.println(" *C");
delay(1000);

// Funcoes para transmissao

//Lendo e armazenando o valor da temperatura
// Convertndo int para char
char SensorCharMsg[10];
itoa(T, SensorCharMsg,10);

digitalWrite(LED, HIGH); // Pisca LED no pino 13 enquanto esta transmitindo
vw_send((uint8_t *)SensorCharMsg, strlen(SensorCharMsg));
vw_wait_tx(); // Espera o envio da informacao
digitalWrite(LED, LOW);
delay(1000);
}

Empfänger:

#define DATA 6
#define LATCH 8
#define CLOCK 10
#include <VirtualWire.h>

int digits[] = {252, 96, 218,242, 102, 182, 190, 224, 254, 246, 238, 62, 156, 122, 158, 142};

void setup()
{
pinMode(LATCH, OUTPUT);
pinMode(CLOCK, OUTPUT);
pinMode(DATA, OUTPUT);

Serial.begin(9600);
vw_set_ptt_inverted(true); // Required for DR3100
vw_set_rx_pin(2); //Orginal pin 15
vw_setup(5000); // Bits per sec
vw_rx_start();
}



void displayNumber(int n)
{
int left, right=0;
if (n < 10)
{
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLOCK, LSBFIRST, digits[n]);
shiftOut(DATA, CLOCK, LSBFIRST, 0);
digitalWrite(LATCH, HIGH);
}
else if (n >= 10)
{
right = (n % 100)%10;
left = (n % 100)/10;
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLOCK, LSBFIRST, digits[right]);
shiftOut(DATA, CLOCK, LSBFIRST, digits[left]);
digitalWrite(LATCH, HIGH);
}
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non-blocking
{

char temp=0;//mod:tim:added a temporary character
for (int i = 0; i < buflen; i++)
{
temp=(char)buf[i];//mod:tim:convert uint to char
Serial.print(temp); //mod:tim:changed buff[i] to temp here

temp=temp - 28;
}

Serial.println("");
if(buf[0]=='1'){
}
if(buf[0]=='0'){
}
displayNumber(temp);
delay(1000);

}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.07.2015, 16:04
Beitrag #2
RE: Funkthermometer mit 7 Segmentanzeige-bitte um Hilfe
Hi, ich hab schon seit Wochen das Netz nach einer Lösung durchforstet, aber leider nicht passendes gefunden.
Ich beschäftige mich erst seit einem Jahr mit dem Arduino, hab auch schon schöne Projekte nach gebaut.
Das Programmieren ist nicht so mein Ding, ich versuche meistens einen bestehenden Sketch so umzuschreiben, dass er für meine Projekte passt.
Aber das mit dem Funkthermometer bekomme ich irgendwie nicht hin.

Liebe Gemeinde, ich bitte Euch um Hilfe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.07.2015, 10:31
Beitrag #3
RE: Funkthermometer mit 7 Segmentanzeige-bitte um Hilfe
Hallo Otti,
hast du mal versucht die Funktion displayNumber() direkt mit int-Werten zu versorgen und zu gucken ob die richtig angezeiogt werden?
So könnte man die Ursache des Problems ein wenig eingrenzen bzw. bestimmte Anteile ausschließen.
grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.07.2015, 11:44
Beitrag #4
RE: Funkthermometer mit 7 Segmentanzeige-bitte um Hilfe
Hallo Ricardo,
ich hab mal einen Sketch durchlaufen lassen, der von 0 bis 99 zählt.
Der hat ohne Probleme funktioniert.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.07.2015, 12:05 (Dieser Beitrag wurde zuletzt bearbeitet: 18.07.2015 12:06 von rkuehle.)
Beitrag #5
RE: Funkthermometer mit 7 Segmentanzeige-bitte um Hilfe
Okay, das bedeutet, dass sowohl Verdrahtung als auch Displayansteuerung okay sind.
Jetzt würde ich den Empfängersketch so modifizieren, dass DisplayNumber() immer noch separat Daten bekommt, das Empfängermodul aber vollständig eingebunden wird und sich im "Horchmodus" befindet. Wenn das gut geht könnte man ausschließen, dass sich die Libraries irgendwie gegenseitig "blokieren". Ich weiß ist mühsam, grenzt aber über das Ausschlussverfahren die möglichen Ursachen nach und nach aus.
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.07.2015, 12:29
Beitrag #6
RE: Funkthermometer mit 7 Segmentanzeige-bitte um Hilfe
Hi,
ich wundere mich, dass das überhaupt irgendwann mal die richtige Temperatur anzeigt, außer es hat vielleicht genau 22 Grad oder so.
Beim senden wird die Temperatur per itoa in einen String umgewandelt, aber beim Empfangen wird jedes einzelne Byte selbst als Temperatur aufgefasst. Versuch mal im Sende-Sketch das hier:
Code:
digitalWrite(LED, HIGH); // Pisca LED no pino 13 enquanto esta transmitindo
uint8_t tempAsByte = T;
vw_send(&tempAsByte, 1);
vw_wait_tx(); // Espera o envio da informacao
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.07.2015, 09:32
Beitrag #7
RE: Funkthermometer mit 7 Segmentanzeige-bitte um Hilfe
Hallo ,
vielen Dank für Eure Antworten.

Torsten, ich hab heut versucht den Sender-Sketch umzuschreiben, bekomme aber folgende Fehlermeldung:
PHP-Code:
Sender-versuch2.inoIn function 'void loop()':
Sender-versuch2.ino:46:1error'uint8_tempAsByte' was not declared in this scope
Sender
-versuch2.ino:47:10error'tempAsByte' was not declared in this scope 

Ricardo, wie soll ich das bitte machen?
Das Alles scheint komplizierter zu sein als ich dachte.

Hab hier noch einen anderen Sender Sketch, mit dem habe ich ein Funkthermometer
mit LCD Display gebaut, funktioniert einwandfrei.
Aber mit dem 7 Seg geht es auch nicht, im Seriellen Monitor des Empfängers werden die Daten aber richtig angezeigt.
Code:
#include <VirtualWire.h>
#include <OneWire.h>

#include <DallasTemperature.h>

#define ONE_WIRE_BUS 7

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

char msg[6];

void setup() {

sensors.begin();

vw_setup(5000);

vw_set_tx_pin(3);

}

void loop() {

sensors.requestTemperatures();

float temperature = sensors.getTempCByIndex(0);

dtostrf(temperature, 6, 2, msg);

vw_send((uint8_t *)msg, strlen(msg));

vw_wait_tx();

delay(200);

}
Gruß ottii
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.07.2015, 09:50
Beitrag #8
RE: Funkthermometer mit 7 Segmentanzeige-bitte um Hilfe
(19.07.2015 09:32)ottii50 schrieb:  Torsten, ich hab heut versucht den Sender-Sketch umzuschreiben, bekomme aber folgende Fehlermeldung:
PHP-Code:
Sender-versuch2.inoIn function 'void loop()':
Sender-versuch2.ino:46:1error'uint8_tempAsByte' was not declared in this scope 
Schau Dir mal ganz genau meinen Vorschlag an. Am besten Du übernimmst es per Copy&Paste...

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen dastob 1 116 14.10.2016 21:40
Letzter Beitrag: hotsystems
Sad Ich brauche Hilfe Prosac 4 230 09.10.2016 18:39
Letzter Beitrag: Prosac
  at24c256 Hilfe Gandalf 6 247 29.08.2016 18:59
Letzter Beitrag: MKc
Smile Progammier Neuling Codeschloss bittet um Hilfe Donalonso 2 284 27.08.2016 18:23
Letzter Beitrag: Binatone
  Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite b3ta 11 447 22.08.2016 08:07
Letzter Beitrag: b3ta
  Hilfe: Mega2560 - ENC 28J60 - MYSQL Gandalf 1 178 28.07.2016 16:30
Letzter Beitrag: Gandalf
  Selbstfahrender Roboter Programm änderung hilfe ? arekklone 11 535 06.07.2016 14:59
Letzter Beitrag: Binatone
  Hilfe beim Arduino Shield reimundko 6 452 05.06.2016 11:28
Letzter Beitrag: rpt007
Smile Datum Anzeige mit 7 Segmentanzeige ottii50 11 894 16.05.2016 19:12
Letzter Beitrag: Mathias
  Brauche etwas Hilfe bei der Umsetzung einer Idee raspido 3 526 23.04.2016 10:26
Letzter Beitrag: rkuehle

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste