Stap 8: Arduino Code
#include "MAX31855.h" #include "LiquidCrystal.h" #include "Adafruit_MAX31855.h" LiquidCrystal lcd (12, 11, 5, 4, 3, 2); Const int turnonAudioboard = 13; Const int audioTrigger0 = A0; Const int audioTrigger1 = a1 worden verkregen; Const int audioTrigger2 = A2; Const int audioTrigger3 = A3; Const int audioTrigger4 = A4; Const int fanRelay = 10; // Const int heaterRelay = 9; Hiermee bepaalt u de verwarmingsautomaten Const int countthreshold = 100; de beginwaarden van de max en min elke 100 seconden Const int startfrequency = 300; Stel de frequentie van de start van de piepjes Const int numberofbeepsmax = 50; de maximumnumber van pieptonen mogelijk instellen int fancountdown = 0; int i; int count = 5; int freq = 0; int pieptonen = 0; int beepthreshold = -10; De bovenstaande waarde die piepjes beginnen te worden geblazen int int audioCount0 = 0; int audioCount1 = 0; int audioCount2 = 0; int audioCount3 = 0; int audioCount4 = 0; int alarmpotvalue = 500; int tempsetpoint = 160; int blowersetpoint = 20; int bloweron = 0; int zeropotvalue = 0; int thermocoupleSOPin = 8; int thermocoupleCSPin = 7; int thermocoupleCLKPin = 6; de variabelen van de temperatuur: dubbele setpoint; dubbele warmte; dubbele uitgang; dubbele kruising; MAX31855 thermokoppel (thermocoupleSOPin, thermocoupleCSPin, thermocoupleCLKPin); VOID Setup { pinMode (audioTrigger0, OUTPUT); digitalWrite(audioTrigger0,HIGH); Laag activeert het audio geluid op de FX-bord pinMode (audioTrigger1, OUTPUT); digitalWrite(audioTrigger1,HIGH); Laag activeert het audio geluid op de FX-bord pinMode (audioTrigger2, OUTPUT); digitalWrite(audioTrigger2,HIGH); Laag activeert het audio geluid op de FX-bord pinMode (audioTrigger3, OUTPUT); digitalWrite(audioTrigger3,HIGH); Laag activeert het audio geluid op de FX-bord pinMode (audioTrigger4, OUTPUT); digitalWrite(audioTrigger4,HIGH); Laag activeert het audio geluid op de FX-bord delay(500); pinMode (turnonAudioboard, OUTPUT); digitalWrite (turnonAudioboard, hoge); pinMode (fanRelay, OUTPUT); initialiseren van de ventilator Relais pin als uitgang pinMode (heaterRelay, OUTPUT); digitalWrite (fanRelay, laag); fan relay uitschakelen. digitalWrite (heaterRelay, laag); Toon (A5, 400, 100); een geluidssignaal 400 hz voor 100ms LCD.begin(20,4); Stel de lcd-dimensie LCD.Clear(); Duidelijk LCD-scherm lcd.setCursor(2,0); LCD.Print ("Varroa Blaster"); delay(2000); Toon (A5, 400, 100); een geluidssignaal 400 hz voor 100ms lcd.setCursor(2,1); LCD.Print ("geit industrieën"); delay(2000); noTone (A5); Lezen van de huidige temperatuur warmte = thermocouple.readThermocouple(CELSIUS); warmte = warmte-3; // Als thermokoppel probleem gedetecteerd Als ((heat == FAULT_OPEN) || (warmte == FAULT_SHORT_GND) || delay(500); delay(500); Als de pot te warm is: while(heat > |
warmte = thermocouple.readThermocouple(CELSIUS);
warmte =
warmte-3;
LCD.Clear();
lcd.setCursor(0,0); LCD.Print ("Gelieve te wachten terwijl");
lcd.setCursor(0,1); LCD.Print ("het apparaat cools");
lcd.setCursor(0,2); LCD.Print ("tot onderstaande 100");lcd.print((char)223);lcd.print("C");
lcd.setCursor (0,3); lcd.print ("Probe
Temp:");LCD.Print(heat);LCD.Print((char)223);LCD.Print("C.");
Toon (A5, 300,
100); een geluidssignaal 300 hz voor 100ms
delay(3000);
}
Als (warmte < 90) //plays audio0 wanneer temperatuur (warmte) les dan 90 graden Celsius.
{
digitalWrite(audioTrigger0,LOW); Lage
activeert het audio geluid op de FX-bord
delay(500);
digitalWrite(audioTrigger0,HIGH);
}
else {}
while(Count>0) {}
LCD.Clear();
lcd.setCursor(4,0); LCD.Print("Starting");
lcd.setCursor(2,1); LCD.Print("vapourisation");
lcd.setCursor(0,3); LCD.Print("Count:"); lcd.setCursor(6,3);
LCD.Print(Count); lcd.setCursor(8,3);
LCD.Print("temp:");LCD.Print(heat);LCD.Print((char)223);LCD.Print("C");
Toon (A5, 400,100);
Count = aantal -1;
delay(1000);
noTone (A5);
}
}
void loop
{
Lezen van de huidige temperatuur
warmte = thermocouple.readThermocouple(CELSIUS);
warmte = warmte-3;
afslag = thermocouple.readJunction(CELSIUS);
Als thermokoppel probleem gedetecteerd
Als ((heat == FAULT_OPEN) || (warmte == FAULT_SHORT_GND) ||
(Heat == FAULT_SHORT_VCC))
blowersetpoint = 20;
warmte = 17; tijdelijke regel voor foutopsporing
LCD.Clear();
lcd.setCursor(0,0); LCD.Print ("Blow tijd:"); lcd.setCursor(10,0);lcd.print(blowersetpoint,DEC);
lcd.setCursor(14,0);lcd.print("Secs.");
lcd.setCursor(0,1); LCD.Print ("Temp instelpunt:"); lcd.setCursor(15,1);
LCD.Print(tempsetpoint,DEC);LCD.setCursor(18,1);LCD.Print((char)223);LCD.Print("C");
lcd.setCursor(0,2);lcd.print("Int.Temp:");lcd.print(junction);lcd.print((char)223);lcd.print("C");
lcd.setCursor (0,3); lcd.print ("Probe Temp:");lcd.print(heat);lcd.print((char)223);lcd.print("C");
Als
((heat>100) & &(heat<105) & &(audioCount1<1)) //plays audio1 wanneer temperatuur (warmte) tot 100 graden C. krijgt
{
audioCount1 = 1;
digitalWrite(audioTrigger1,LOW); Lage
activeert het audio geluid op de FX-bord
delay(500); BELANGRIJK dit moet ten minste 500!
digitalWrite(audioTrigger1,HIGH);
}
else {}
Als
((heat>130) & &(heat<135) & &(audioCount2<1)) //plays audio2 wanneer temperatuur (warmte) tot 130 graden C. krijgt
{
audioCount2 = 1;
digitalWrite(audioTrigger2,LOW); Laag activeert het audio geluid op de FX-bord
delay(500);
digitalWrite(audioTrigger2,HIGH);
}
else {}
Als
((heat>150) & &(heat<155) & &(audioCount3<1)) //plays audio3 wanneer temperatuur (warmte) tot 150 graden C. krijgt
{
audioCount3 = 1;
digitalWrite(audioTrigger3,LOW); Laag activeert het audio geluid op de FX-bord
delay(500);
digitalWrite(audioTrigger3,HIGH);
}
else {}
piepen geluiden op het verhogen van de frequenties te maken
freq =
startfrequency;
pieptonen = 0;
beepBeepThreshold
= beepthreshold;
while(beeps < numberofbeepsmax) {}
if(heat >beepBeepThreshold)
Toon (A5, freq, 9); een opmerking van pin 1 spelen bij freq voor 9ms
pieptonen ++;
beepBeepThreshold
= beepBeepThreshold + 10;
freq = freq +
200;
delay(10);
}
noTone (A5);
Als (warmte
}
anders
{digitalWrite (heaterRelay, laag); bloweron = 1;
}
fancountdown = blowersetpoint;
delay(1000);
Nu de temperatuur heeft bereikt en de ventilator moet zijn ingeschakeld.
Begin eerst de audio:
Als (bloweron > 0) {}
digitalWrite(audioTrigger4,LOW); Laag activeert het audio geluid op de FX-bord
delay(500);
digitalWrite(audioTrigger4,HIGH);
delay(14000);
}
else {}
Schakel de ventilator:
while(bloweron >0) {/ / bloweron heeft de staus van '1' en zo deze lus is geactiveerd:
digitalWrite (fanRelay, hoge);
Als (warmte
}
anders
{digitalWrite (heaterRelay, laag);
}
Lezen van de huidige temperatuur
warmte = thermocouple.readThermocouple(CELSIUS);
warmte = warmte-3;
afslag = thermocouple.readJunction(CELSIUS);
Als thermokoppel probleem gedetecteerd
Als ((heat == FAULT_OPEN) || (warmte == FAULT_SHORT_GND) ||
(Heat == FAULT_SHORT_VCC))
Toon (A5, 1500, 100); een geluidssignaal 1500 hz voor 100ms
delay(500);
Toon (A5, 1500,100); een geluidssignaal 1500 hz voor 100ms
delay(500);
fancountdown = fancountdown -1;
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print("blowing:");
lcd.setCursor(10,0);lcd.print(fancountdown,DEC);
lcd.setCursor(14,0);lcd.print("Secs.");
lcd.setCursor(0,1);
LCD.Print ("Temp instelpunt:"); lcd.setCursor(15,1);
LCD.Print(tempsetpoint,DEC);LCD.setCursor(18,1);LCD.Print((char)223);LCD.Print("C");
lcd.setCursor(0,2);lcd.print("Int.Temp:");lcd.print(junction);lcd.print((char)223);lcd.print("C");
lcd.setCursor (0,3); lcd.print ("Probe
Temp:");LCD.Print(heat);LCD.Print((char)223);LCD.Print("C");
noTone (A5);
Als (fancountdown < 1) {}
Hierdoor ontstaat een 'Gereedgemeld' lus
terwijl (fancountdown < 1) {}
LCD.Clear();
Lezen van de huidige temperatuur
warmte = thermocouple.readThermocouple(CELSIUS);
warmte = warmte-3;
afslag = thermocouple.readJunction(CELSIUS);
Als thermokoppel probleem gedetecteerd
Als ((heat == FAULT_OPEN) || (warmte == FAULT_SHORT_GND) ||
(Heat == FAULT_SHORT_VCC))
lcd.setCursor(0,0); LCD.Print("finished");
lcd.setCursor(10,0);lcd.print(fancountdown,DEC);
lcd.setCursor(13,0);lcd.print("Secs.");
lcd.setCursor(0,1); LCD.Print ("Temp set
Wijs: "); lcd.setCursor(15,1);
LCD.Print(tempsetpoint,DEC);LCD.setCursor(18,1);LCD.Print((char)223);LCD.Print("C");
lcd.setCursor(0,2);lcd.print("Int.Temp:");lcd.print(junction);lcd.print((char)223);lcd.print("C");
lcd.setCursor (0,3); lcd.print ("Probe
Temp:");LCD.Print(heat);LCD.Print((char)223);LCD.Print("C");
digitalWrite (heaterRelay, laag);
digitalWrite (fanRelay, laag);
delay(1000);
}
}
else {}
}
}