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:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Code um temperatu einzustellen funktioniert nicht
16.04.2015, 15:04
Beitrag #1
Information Code um temperatu einzustellen funktioniert nicht
Hallo Zusammen,

Ich studiere in den niederlanden eine Mischung aus Maschinenbau und Design und dafür haben wir ein projekt bekommen, eine Maus mit Heizung zu bauen.

Es geht hauptsächlich um den elektrotechnischen Teil, wovon wir alle nicht wirklich ahnung haben. Wir haben uns einen Schaltplan erarbeitet und ein Programm für den Arduino geschrieben, aber das Programm funktioniert leider nicht.
Ich hoffe das ihr uns dabei helfen könnt...

Die Schaltung hab ich mal als Bild angehangen.
Bei dem Code geht es grob darum, dass ein Potentiometer angibt wie warm das Heizelement maximal werden darf. Ein Temperatursensor misst die Temperatur und wenn diese zwischen zwei Werten liegt, die das potmeter bestimmt, wird das heizelement angeschaltet oder es bleibt entsprechend aus.
Ausserdem haben wir noch eine LED eingebaut, die anzeigen soll ob das potmeter an ist oder nicht.

Ich hoffe man kann das ein bisschen verstehen...
Hier der Code, den ich geschrieben habe:

int PotiPin= A0;
int PotiValue = 0;
int TempPin = A1;
int TempValue = 0;
int LEDPin = 13;
int HeatPin = 2;

void setup () {
pinMode (LEDPin, OUTPUT);
pinMode (HeatPin, OUTPUT);
}

void loop (metenTemperatuur) {
TempValue = analogRead(TempPin);
delay (1000);
}

void loop (metenPotmeter) {
PotiValue = analogRead(PotiPin);
delay (1000);
}

void loop (aanzettenLED) {
if (PotiValue > 4);
{
digitalWrite (LEDPin, HIGH);
}
else
{
digitalWrite (LEDPin, LOW);
}
delay (500);
}

void loop (instellenTemperatuur) {

if (PotiValue <=341 && TempValue <=446);
{
digitalWrite (HeatPin, HIGH);
}

if (TempValue >453);
{
digitalWrite (HeatPin, LOW);
}

if (PotiValue >341 && PotiValue <=682);
{
digitalWrite (HeatPin, HIGH);
}

if (TempValue <=483);
{
digitalWrite (HeatPin, HIGH);
}

if (PotiValue >341 && PotiValue <=682);
{
digitalWrite (HeatPin, LOW);
}

if (TempValue >490);
{
digitalWrite (HeatPin, LOW);
}

if (PotiValue >682 && TempValue <=521);
{
digitalWrite (HeatPin, HIGH);
}

if (PotiValue >682 && TempValue >529);
{
digitalWrite (HeatPin, LOW);
}

delay (1000);
}


Es wäre echt genial wenn uns jemand helfen könnte!
Dankeschön schonmal :)


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.04.2015, 15:42
Beitrag #2
RE: Code um temperatu einzustellen funktioniert nicht
Es darf nur eine Funktion loop geben.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.04.2015, 16:19 (Dieser Beitrag wurde zuletzt bearbeitet: 16.04.2015 16:20 von Jelimi.)
Beitrag #3
RE: Code um temperatu einzustellen funktioniert nicht
Als erstes mal alle delay raus, das ist nicht gut.

Bei den If Abfragen ist einiges falsch, das kann nie gehen.


z.B.
if (PotiValue >341 && PotiValue <=682);
{
digitalWrite (HeatPin, HIGH);
}

und direkt danach

if (PotiValue >341 && PotiValue <=682);
{
digitalWrite (HeatPin, LOW);
}

da geht der HeatPin an und in der gleichen Millsekunde wieder aus, was soll das?

Das sind nur Beispiele, es liegt noch viel mehr im Argen.

gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.04.2015, 17:58
Beitrag #4
RE: Code um temperatu einzustellen funktioniert nicht
Meiner Meinung nach sind die delays in Ordnung, aber fast alles andere ist eher nicht so doll. Das geht nichtmal durch den Compiler, würde ich sagen.

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
17.04.2015, 09:47
Beitrag #5
RE: Code um temperatu einzustellen funktioniert nicht
Hallo,
Danke schon mal für eure schnellen Antworten!

@ Jelimi:
Mit der if abfrage hast du recht, da hab ich vergessen das >< Zeichen umzudrehen, dann macht es wieder Sinn.
Das werd ich bei den andern dann auch noch mal überprüfen.

@ Thorsten Pferdekämpfer:
mit dem compiler hast du leider recht, nur kann ich die Fehlermeldung darin nicht richtig interpretieren. Hab das auch schon versucht zu googlen, aber das hat leider auch nicht geholfen, weil die antworten da für mich schon zu fachspeziefisch waren -.-

@ t.a.f.k.a.Z.:
Das relais war nur als alternative gedacht und kommt in der entgültigen schaltung gar nicht mehr vor.


Hat jemand ne idee wie das programm richtig aussehen muss?! Wir sind mit unserm elektrotechnik - latein ziemlich am Ende und ein bisschen verzweifelt, wie wir das ganze noch zum laufen kriegen sollen...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.04.2015, 09:57
Beitrag #6
RE: Code um temperatu einzustellen funktioniert nicht
Hi,
fangt erstmal kleiner an. Schreibt erstmal ein Programm, dass z.B. einfach nur die Temperatur einmal pro Sekunde auf die serielle Schnittstelle ausgibt. Dann habt Ihr wenigstens mal Programm ohne Syntaxfehler. Darauf kann man dann aufbauen.
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
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  BME280 wird nicht erkannt sowerum 14 255 10.12.2017 22:14
Letzter Beitrag: Tommy56
  Echtzeituhrmodul läuft nicht scritch 21 608 30.11.2017 10:44
Letzter Beitrag: Tommy56
  Bootloader lässt sich nicht brennen?? dobermann145 10 548 21.11.2017 22:58
Letzter Beitrag: hotsystems
Sad Nano - nicht genug Speicher torsten_156 10 628 30.10.2017 21:40
Letzter Beitrag: MicroBahner
  Code wird langsamer mit der Laufzeit Wampo 9 580 05.10.2017 11:32
Letzter Beitrag: SkobyMobil
Tongue Visual Studio Code als Editor für die Entwicklung von Arduino Code Klaus(i) 1 349 03.09.2017 19:15
Letzter Beitrag: Mathias
  NeoPixels: Sketch will nicht - Problem mit delay? Zabsi 5 489 22.08.2017 15:17
Letzter Beitrag: Tommy56
  BME280 - Luftdruckoffset nicht einstellbar ? Stargazer 17 1.286 13.08.2017 15:38
Letzter Beitrag: hotsystems
  Arduino funktioniert immer erst nach reset Maxi290997 11 1.047 25.07.2017 09:38
Letzter Beitrag: Maxi290997
  Ich komme mit millis nicht weiter !!! Gonmaus 8 945 09.07.2017 21:24
Letzter Beitrag: Tommy56

Gehe zu:


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