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
  328P geht nicht mehr Harry 29 786 Gestern 12:41
Letzter Beitrag: Harry
  Rotaryencoder funktioniert nicht richtig 123clever 19 389 20.02.2018 22:22
Letzter Beitrag: rpt007
  Unverständnis im Code Maker33 11 244 19.02.2018 21:03
Letzter Beitrag: Tommy56
  TFT Pixel to Code oOSpikeOo 6 784 19.02.2018 10:36
Letzter Beitrag: Mobilunity
  Echtzeituhrmodul läuft nicht scritch 64 2.808 28.01.2018 14:16
Letzter Beitrag: Tommy56
  Programm-Code für 4 Schrittmotoren Philipp92 18 961 27.01.2018 12:10
Letzter Beitrag: Tommy56
  Code muss um 73Bytes reduziert werden! Wie? torsten_156 13 715 25.01.2018 21:56
Letzter Beitrag: torsten_156
Bug I2C Displays wollen nicht mehr Der Ausserirdische 12 577 30.12.2017 17:11
Letzter Beitrag: hotsystems
  Uhr funktioniert nicht Jakob 8 561 30.12.2017 00:15
Letzter Beitrag: hotsystems
  BME280 wird nicht erkannt sowerum 14 691 10.12.2017 22:14
Letzter Beitrag: Tommy56

Gehe zu:


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