Ich möchte über ein Android Smartphone digitale und analoge Werte auslesen. Das ganze sollte über eine Bluetooth Schnittstelle funktionieren.
Ich habe mir gedacht, das ich die analogen Werte über einen Temperatursensor fealisiere und die digitalen über den high und low Pegel eines Lüfters.
Ich habe hier folgendes Problem, ich möchte, das nicht nur angezeigt wird, das der Lüfter high oder low ist, sondern auch die Zeit möchte ich angezeigt bekommen.
Kann mir jemand grob erklären, wie man sowas mittels Timer realisiert ?
Und genau da beginnt ja auch schon mein Problem..die Kommunikation zwischen dem Telefon und HC05 will einfach nicht funktionieren..und ich weiß echt nicht woran es liegt...
@ Tobi:
Du mußt Dein Problem näher und detailierter beschreiben. Ein Lüfter kann nicht high oder low sein. Er gibt Impulse aus entsprechend seiner Drehzahl. Was man damit macht ist eine andere Sache.
Auch das Dein Temperatursensor ein Dallas DS18B20 ist haste hier völlig vergessen zu nennen.
Was Du dafür brauchst, hatte ich Dir per PN schon geantwortet.
Ein guter Rat. Tief Luft holen. Infos zu Deiner Projektarbeit notieren. Was hast Du alles, was soll später wie funktionieren. Dann wird die Aufgabe unterteilt. In den Teil für den Arduino und den Teil für Dein Android Smartphone. Wobei Dir sicherlich niemand hier eine App für Android schreibt. Dafür gibts aber eine Software von Google die im Browser läuft womit man grafisch programmiert. Ich glaube das heißt "Google App Inventor".
Wenn Du Dich neu gesammelt hast, schreibe nochmal im Thread.
Laut deiner PN willst du DS18B20 analog einlesen, was schon mal falsch ist. Das ist ein digitaler Sensor der über ein Bus gelesen wird.
Es wird nicht schneller gehen wenn du wahllos PN's schreibst. Lies dich in Ruhe ein und teste mal ein paar Sketche zu Teilfunktionen, und vorallem bring Gedult mit und dann stelle deine Fragen....
Na wo ihr recht habt habt ihr recht...so habe jetzt erstmal den Sensor gewechselt..damit es hier auch um analoge Werte geht.
Ich messe die Temperatur jetzt mit einem NTC.
Kann ich in folgenden Code jetzt noch einfügen, das ab z.B einer Temperatur von 25.00 Grad ein digitaler PIN auf high gesetzt wird und bei unter 25.00 Grad wieder Low gesetzt wird ?
#include <math.h>
float temperatur =0; //Variable zum Zwischenspeichern der Temperatur
void setup()
{
Serial.begin(9600);
}
void loop()
{
temperatur = temp(analogRead(0));
Serial.println(temperatur);
Serial.println(analogRead(0));
delay(1000);
}
float temp(int rawadc)
// Hilfsfunktion zur Umrechnung auf Grad Celsius
{
int r1 = 10000; // Wert des Festen Wiederstandes des sabbungsteiler
int r2 = 10000; // Wiederstand des Thermristors bei 25grad
int b = 3950; // Fixwert aus Datenblatt
float r_akt; // Aktueller Wiederstand
float temp; //Temporäre Variable
float ergebnis; //
float tn = 25; //Basistemperatur in Grad Celsius
// Wiederstand Therm ausrechnen
//Widerstand auf Temperatur umrechnen
tn = tn+273.15; // Basitemperatur auf Kelvin umrechnen
r_akt = ((4.64/(4.64/1023*rawadc))r1)-r2; //Aktuellen Widerstand ermitteln
temp = btn/(b+log10((r_akt/r2))*tn);
temp = temp - 273.15; //Ergebnis in Grad Celsius umwandeln
ergebnis =temp;
return ergebnis;
}
die math.h brauchste dafür noch nicht. Kannste weglassen.
Wegen dem einlesen eines analogen Wertes. Guck Dir mal bitte das Bsp. in der IDE > Analog > AnalogInput an. Das sollte Deine beiden Fragen beantworten. Danach weist wie die Pinbezeichnung eines analogen Eingangs lautet und wie man digitale Pins schaltet.
Für einen Vergleich zur Schaltberechtigung vergleichst Du mit > und < den aktuellen Wert mit Deinem festgelegten Schwellwert. Dabei wirst Du dann bestimmt einen Effekt erleben. Dazu dann später wenn Du soweit bist.
spätestens wenn etwas nicht so funktioniert wie ich mir das dachte, lasse ich mir seriell an entsprechender Stelle Zwischenergebnisse ausgeben und/oder schreibe als Kommentar hinter jede Zeile von mir überlegte Bsp. Rechnungen wie es funktionieren müßte. Danach findet man die meisten Denkfehler ganz schnell.
Wie groß ist denn Dein Schwellwert und Deine Hysterese?
Und ab welchen Temperaturwerten soll den der Pin umschalten?
Also was haste Dir ausgedacht und was passiert wirklich, was nicht dem Wunsch entspricht?
Vollständiger Sketch wäre wie immer hilfreich.
Man angenommen Dein Schwellwert liegt bei 26°C und Deine Hysterese ist 1°C.
Dann wird bei 28°C bzw. bei 24°C umgeschalten. Laut Deinem aktuellen Code
Durch eine einfache Code Änderung kann man das auf 27°C / 25°C ändern. Ohne die Zahlen zu ändern.
Kommste selbst drauf?