loop "loopt niet"?
7 berichten
• Pagina 1 van 1
loop "loopt niet"?
goedenavond ,
ben weer lekker bezig maar stuit op een probleem
ik lees de waarden van ds18b20 uit en in de loop bevriest deze als ik naar de seriele monitor schrijf veranderen de waarden MT en HLT maar precies de waarde celcius in de loop bevriest
bvd
Nico
iemand een idee?
ben weer lekker bezig maar stuit op een probleem
ik lees de waarden van ds18b20 uit en in de loop bevriest deze als ik naar de seriele monitor schrijf veranderen de waarden MT en HLT maar precies de waarde celcius in de loop bevriest
bvd
Nico
iemand een idee?
- Code: Alles selecteren
#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>
// Variables for Step
long tempo;
float t1;
int pumpstatus;
int t2;
int t3;
int step_number = 1;
int t_step1;
int t_step2;
int t_step3;
char step_off = 'x';
char check;
char add_min;
//char step_on;
long t_over;
long t_actual;
long t_real;
long t_step;
int start = 0;
char final_step;
int inizio = 1;
int song;
int stato;
float celsius;
//lcd
// Connections:
// rs (LCD pin 4) to Arduino pin 12
// rw (LCD pin 5) to Arduino pin 11
// enable (LCD pin 6) to Arduino pin 10
// LCD pin 15 backlight lcd direct on 5v
// LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
// end lcd
// end variables part
// melody part:
// tones for melody
#define NOTE_A3 220
#define NOTE_B3 247
#define NOTE_C3 131
#define NOTE_G3 196
#define NOTE_A4 440
#define NOTE_C4 262
// notes in the melody:
int melody[] = { NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4, NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3,
NOTE_G3,0, NOTE_B3, NOTE_C4, NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4 };
// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {4, 8, 8, 4,4,4,4,4, 4, 8, 8, 4,4,4,4,4, 4, 8, 8, 4,4,4,4,4};
// end melody part
// ===================set up sensor part
#define ONE_WIRE_BUS 7 // ds18b20 on pin7
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
DeviceAddress MT = { 0x28, 0xD2, 0x9F, 0x63, 0x03, 0x00, 0x00, 0x90 }; //mt =mashtun
DeviceAddress HLT = { 0x28, 0x1B, 0xAB, 0x63, 0x03, 0x00, 0x00, 0x02 };//HLT hot liq. tun
void setup(void)
{
// Start up the library
sensors.begin();
// set the resolution to 10 bit
sensors.setResolution(MT, 10);
sensors.setResolution(HLT, 10);
// end setup sensor part
// initialize the digital pin's as an output.
pinMode(8, OUTPUT); // Relay 1 pump
//pinMode(9, OUTPUT); // Relay 2 heater
Serial.begin(9600);
digitalWrite(8, LOW); // set the Relay 1 off
//digitalWrite(9, LOW); // set the Relay 2 off
}
//start temp read
void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00) {
Serial.println("Error");
} else {
Serial.println(tempC);
}
{
float tempC = sensors.getTempC(MT);
}
{
//float tempC = sensors.getTempC(HLT);
//if (tempC > Settemp + 10) //HLT to be 10C hotter than Maisch
//{digitalWrite (9, HIGH);}
//else
//{digitalWrite (9, LOW);}
}
// note visual basic reads celsius as value for controling relay1
}
void loop(void)
{
// read celsius value for VB
celsius = (sensors.getTempC(MT));
//Serial.println (sensors.getTempC(MT)); // for serial monitor check only
//Serial.println (sensors.getTempC(HLT)); // for serial monitor check only
Serial.println (celsius);
//LCD output
lcd.begin(16,2); // columns, rows. use 16,2 for a 16x2 LCD, etc.
lcd.clear(); // start with a blank screen
lcd.setCursor(0,0);
lcd.print("Maisch = ");
lcd.print(celsius);
lcd.print(" C ");
// read status of relay1 : pump
pumpstatus = digitalRead(8);
if (pumpstatus == HIGH) {
lcd.setCursor(0,1);
lcd.print("pomp aan"); //pump running
}
else {
lcd.setCursor(0,1);
lcd.print("pomp uit"); //pump off
delay (5000);
}
// original part by italian max odillo interaction VB <> Arduino works fine no changes made
// Accensione tramite pulsante ON in Visual Basic (resta spento finchè diverso da y)
if (step_off !='y') {
step_off = Serial.read();
stato = 1;
}
// Spegnimento di emergenza tramite pulsante OFF in Visual Basic (Controllo se la serial read = x e assegno x a step_off)
if (step_off =='y') { // Deve essere possibile spegnere solo dopo che il mash è iniziato (e il mash inizia quando step_off = y)
if (stato == 1) { // Evito di inviare il comando di accensione se il relè è già acceso
digitalWrite(8, HIGH); // set the Relay 1 on
//if (stato == 1) {
tone(6, NOTE_G3, 250);
delay(250);
tone(6, NOTE_A4, 250); // Eseguo suono ad ogni fine step
delay(250);
tone(6, NOTE_G3, 250); // Eseguo suono ad ogni fine step
delay(250);
tone(6, NOTE_A4, 250); // Eseguo suono ad ogni fine step
stato = 2; // Cambio lo stato da 1 a 2 RELAY ACCESO
}
check = Serial.read(); // Una volta iniziato il mash inizio a leggere la seriale e solo se ricevo il valore x assegno step_off = x così da fermare il mash
if (check =='x') {
digitalWrite(8, LOW); // set the Relay 1 off
step_off = Serial.read();
// Resetto le variabili che controllano se lo step è finito
}
}
}
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: loop "loopt niet"?
bauer1 schreef:
ik lees de waarden van ds18b20 uit en in de loop bevriest deze als ik naar de seriele monitor schrijf veranderen de waarden MT en HLT maar precies de waarde celcius in de loop bevriest
Nou weet ik dat punten een schaars goed zijn maar bedoel je dit?
Ik lees de waarden van de ds18b20 uit.
De loop bevriest als ik naar de seriële monitor schrijf.
De waarden MT en HLT veranderen.
Maar celcius veranderd niet.
Als dit het geval is, hoe weet je dat:
- de oneWire werkt?
- de LCD goed werkt?
- als je het Serial.println(celcius) eruit haalt veranderd het LCD display dan wel?
Verder maak je het jezelf een stuk eenvoudiger door alle overbodige haakjes en accolades eruit te slopen, alles wat je niet gebruikt in commentaar zetten of als je het niet gaat gebruiken helemaal verwijderen. Routines die niet aangeroepen worden uit te commentariëren, nu moet je zoeken in een chaos en rommelige code. Ik kan het niet vaak genoeg zeggen:
- Werk ordelijk en netjes. Als je verwacht can een ander dat hij/zij door jouw code moet spitten maak het uitnodigend. Als je er zelf al niet meer uitkomt hoe kan je dan verwachten dat een ander door die code er wel uitkomt?
Re: loop "loopt niet"?
ik ben eruit
ik heb in de loop vergeten de "sensor request"in te voegen vandaar dat er geen nieuwe waarden verschijnen.
bedankt voor de input
nico
ik heb in de loop vergeten de "sensor request"in te voegen vandaar dat er geen nieuwe waarden verschijnen.
bedankt voor de input
nico
Re: loop "loopt niet"?
Sorry voor deze min of meer offtopic vraag, maar ik ben geïnteresseerd in de tone() functie die in de software wordt aangeroepen.
Weet iemand waar ik gedetailleerdere informatie over deze functie kan vinden?
Weet iemand waar ik gedetailleerdere informatie over deze functie kan vinden?
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: loop "loopt niet"?
Google? http://arduino.cc/en/Reference/toneMarc schreef:Sorry voor deze min of meer offtopic vraag, maar ik ben geïnteresseerd in de tone() functie die in de software wordt aangeroepen.
Weet iemand waar ik gedetailleerdere informatie over deze functie kan vinden?
En anders moet je in de source kijken.
Re: loop "loopt niet"?
Bedankt voor de informatie, Nico.
Ik had eerlijk gezegd niet verwacht dat tone() een onderdeel was van de standaard C library.
Ik dacht aan een aanvullende library, maar vond geen bewijs ervan in de geposte sourcecode.
Ik had eerlijk gezegd niet verwacht dat tone() een onderdeel was van de standaard C library.
Ik dacht aan een aanvullende library, maar vond geen bewijs ervan in de geposte sourcecode.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: loop "loopt niet"?
source staat in <ArduinoFolder>/hardware/arduino/avr/cores/arduino (als je 1.5.4 gebruikt)
7 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 6 gasten