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 - Luftdruckoffset nicht einstellbar ? Stargazer 17 412 13.08.2017 15:38
Letzter Beitrag: hotsystems
  Arduino funktioniert immer erst nach reset Maxi290997 11 726 25.07.2017 09:38
Letzter Beitrag: Maxi290997
  Ich komme mit millis nicht weiter !!! Gonmaus 8 512 09.07.2017 21:24
Letzter Beitrag: Tommy56
  Volume Up falscher Tastatur Hex-Code Maxi290997 7 411 03.07.2017 21:49
Letzter Beitrag: Maxi290997
  delay(...) im Code ok? donut 4 315 08.06.2017 20:16
Letzter Beitrag: donut
  WEMOS Motorshield funzt nicht Rumpl-X 8 354 07.06.2017 21:10
Letzter Beitrag: Tommy56
  Textdokument in Arduino Code umwandeln Tellen 9 475 03.06.2017 16:30
Letzter Beitrag: Tellen
  LCD geht nicht - keine Ahnung warum?? DL1AKP 12 639 15.05.2017 13:17
Letzter Beitrag: DL1AKP
  433mHz Funkmodule senden/empfangen nicht metzgefa 2 580 06.05.2017 13:30
Letzter Beitrag: metzgefa
  TFT Pixel to Code oOSpikeOo 5 339 06.04.2017 18:49
Letzter Beitrag: Tommy56

Gehe zu:


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