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
  Arduino lässt sich nicht installieren bergfrei 4 147 20.11.2016 18:34
Letzter Beitrag: bergfrei
  Arduino Mega 2560 läuft nicht Wolfgang50 6 185 13.11.2016 10:50
Letzter Beitrag: Wolfgang50
  Ardublock übertragt nicht an IDE oder UNO R3 tobi83 5 345 16.10.2016 14:07
Letzter Beitrag: Pit
  Einfacher Tacho für niedrige Geschwindigkeiten – Code optimieren Bastelo 2 261 12.10.2016 20:31
Letzter Beitrag: Bastelo
  Code mit Verifikation über Keypad & LCD machnetz 5 215 10.10.2016 15:01
Letzter Beitrag: torsten_156
  Upload funktioniert nicht Levi 5 247 22.09.2016 20:19
Letzter Beitrag: hotsystems
  ESP8266 tuts nicht sowerum 7 396 19.09.2016 21:01
Letzter Beitrag: sowerum
  If-Bedingung funktioniert nicht bei Serial1.write Datatom 6 226 16.09.2016 20:36
Letzter Beitrag: Datatom
  SD Karte wird nicht erkannt... Maxi290997 2 208 16.08.2016 14:36
Letzter Beitrag: Maxi290997
  Arduino lässt sich nicht mehr beschreiben Maxi290997 15 984 07.08.2016 11:40
Letzter Beitrag: Maxi290997

Gehe zu:


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