twee sketch gekoppeld

Alles wat niet past in bovenstaande onderwerpen
Berichten: 23
Geregistreerd: 27 Nov 2016, 15:22

twee sketch gekoppeld

Berichtdoor hansc » 26 Nov 2017, 14:54

Hallo, ik heb een sketch met een LM35, deze werkt. Kan gewoon de temperatuur uitlezen.
Nu heb ik van een andere sketch het e.a gekopieerd en geplakt. Het is de bedoeling dat bij een bepaalde buiten temperatuur deze een verwarmings- lint aanstuur d.m.v een relais (pin9).
Op de uitgang van mijn Uno meet ik op pin 9 maar 2,2 V. Heb het e.e.a. veranderd maar relais wordt niet geschakeld. Dus alles weer terug gezet.

Heeft iemand een idee waar ik de fout ben ingegaan?

Hier de sketch van de LM35,als deze alleen is werkt deze!

#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
int LM35PIN=A0;
int analogValue;
int tempPIN;
int tempPIn=A0;

void setup() {
Serial.begin(9600);
pinMode(A0,INPUT);// LM35
lcd.begin(16,2);


}

void loop() {
int analogValue;
analogValue=analogRead(tempPIN);
float mv =(analogValue/1024.0)*5000;
float cel = mv/10;
//float farh= (cel*9)/5+32;//
// int analogValue;//
float temperature;
temperature=float(analogValue)/1024.0;
temperature=temperature*500;

lcd.print("TEMPERATURE ");
lcd.setCursor(0,1);
lcd.print(cel);
lcd.setCursor(5,1);
lcd.print("*C");

("C");
delay (1000);
lcd.clear();

}

Hier onder de aanvulling

#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
int LM35PIN=A0;
int analogValue;
int tempPIN;
int tempPIn=A0;

//int HEATHER//

//Temprature control point
#define SETPOINT 22,5
#define DEADBAND 2,0
#define HEATHER
#define heather

#define Heather 9 // pin 9 voor heather
#define ON false //The relay is sort of backwards. A low/0/false output is actually ON
#define OFF true //The relay is sort of backwards. A high/1/true output is actually OFF


//


void setup() {
Serial.begin(9600);
pinMode(A0,INPUT);// LM35
pinMode("HEATHER", OUTPUT);
digitalWrite("HEATHER", OFF);
lcd.begin(16,2);


}

void loop() {
int analogValue;
analogValue=analogRead(tempPIN);
float mv =(analogValue/1024.0)*5000;
float cel = mv/10;
//float farh= (cel*9)/5+32;//
// int analogValue;//
float temperature;
temperature=float(analogValue)/1024.0;
temperature=temperature*500;

lcd.print("TEMPERATURE ");
lcd.setCursor(0,1);
lcd.print(cel);
lcd.setCursor(5,1);
lcd.print("*C");

("C");
delay (1000);
//Now begin control logic
{
if ("TEMPERATURE"<SETPOINT+DEADBAND)
{
// We've reached the under limit, so kill the heather
digitalWrite("HEATHER", OFF);
}
}

//else//

//if the heather is off ,so check on the temperature is below setpoint
if ("TEMPERATURE"<SETPOINT-DEADBAND)
{
//We've reached the lower limit, so check on the temperature
digitalWrite("HEATER", ON);
}
}

M.vr.gr. Hans

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: twee sketch gekoppeld

Berichtdoor Koepel » 26 Nov 2017, 17:11

Dankjewel dat je duidelijk het probleem laat zien met de twee sketchen.

Zou je voortaan op dit forum de knop "Code" of de "Select a Syntax" en dan "C++" willen gebruiken. Dan kunnen we zien of je een beetje netjes werkt met het inspringen ;)

Wat is dit: ("C");
Dat doet niets, dat kun je weghalen.

Zou je de variabelen maar één keer willen declareren of definiëren ?

Dit is twee keer:
Code: Alles selecteren
int tempPIN;
int tempPIn=A0;
Maak daar één keer van.

Dit is drie keer:
Code: Alles selecteren
#define HEATHER
#define heather

#define Heather 9 // pin 9 voor heather
Maak daar één keer van.

Pin 9 bij voorkeur op deze manier:
Code: Alles selecteren
const int heaterPin = 9;


Kun je eens doorlezen hoe pinMode en digitalWrite gebruikt worden ?
pinMode: https://www.arduino.cc/reference/en/language/functions/digital-io/pinmode/
digitalWrite: https://www.arduino.cc/reference/en/language/functions/digital-io/digitalwrite/

De pinMode heeft als eerste parameter het nummer van de pin. Dus niet de tekst "HEATHER", maar bijvoorbeeld heaterPin (dat is de constante die ik hierboven voorstelde).

De digitalWrite heeft ook als eerste parameter het nummer van de pin. Dus niet een tekst.
De digitalWrite heeft als tweede parameter HIGH of LOW, dus niet true of false.

Verder zit er nog een slordigheidje met accolades in, dus met de '{' en '}'.

Zou je de nieuwe sketch willen laten zien ?

Berichten: 23
Geregistreerd: 27 Nov 2016, 15:22

Re: twee sketch gekoppeld

Berichtdoor hansc » 26 Nov 2017, 22:55

Hallo Koepel,
Dank voor je reactie,dat van de code om sketch toe te voegen wist ik niet.
("C") is graden Celsius.
Voor ik reageerde kreeg ik een helder moment, ;) dat ON en OFF niet kan en idd HIGH en LOW moeten zijn.
Heb alleen nog maar dingen uit een boek gedaan , en dit is mijn eerste project. Heb nog niet veel ervaring.
Hier de sketchcpp code
 
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
int LM35PIN=A0;
int analogValue;
int tempPIN;
int tempPIn=A0;

//int HEATHER//

//Temprature control point
#define SETPOINT 29,5
#define DEADBAND 2,0
#define HEATHER
#define heather

#define heatherPin 9 // pin 9 voor heather
#define ON HIGH //The relay is sort of backwards. A low/0/false output is actually ON
#define OFF LOW //The relay is sort of backwards. A high/1/true output is actually OFF


//


void setup() {
Serial.begin(9600);
pinMode(A0,INPUT);// LM35
pinMode("HeatherPin", OUTPUT);
digitalWrite(heatherPin, LOW);
lcd.begin(16,2);


}

void loop() {

Berichten: 23
Geregistreerd: 27 Nov 2016, 15:22

Re: twee sketch gekoppeld

Berichtdoor hansc » 26 Nov 2017, 22:58

Koepel er is iets niet goed gegaan.
Probeer het nog een keer.

cpp code
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int LM35PIN = A0;
int analogValue;
int tempPIN;
int tempPIn = A0;

//int HEATHER//

//Temprature control point
#define SETPOINT 29,5
#define DEADBAND 2,0
#define HEATHER
#define heather

#define heatherPin 9 // pin 9 voor heather
#define ON HIGH //The relay is sort of backwards. A low/0/false output is actually ON
#define OFF LOW //The relay is sort of backwards. A high/1/true output is actually OFF

//

void setup() {
Serial.begin(9600);
pinMode(A0, INPUT); // LM35
pinMode("HeatherPin", OUTPUT);
digitalWrite(heatherPin, LOW);
lcd.begin(16, 2);

}

void loop() {
int analogValue;
analogValue = analogRead(tempPIN);
float mv = (analogValue / 1024.0) * 5000;
float cel = mv / 10;
//float farh= (cel*9)/5+32;//
// int analogValue;//
float temperature;
temperature = float(analogValue) / 1024.0;
temperature = temperature * 500;

lcd.print("TEMPERATURE ");
lcd.setCursor(0, 1);
lcd.print(cel);
lcd.setCursor(5, 1);
lcd.print("*C");

("C");
delay(1000);
//Now begin control logic
{
if ("TEMPERATURE" < SETPOINT + DEADBAND) {
// We've reached the under limit, so kill the heather
digitalWrite("HEATHER", LOW);
}

else

//if the heather is off ,so check on the temperature is below setpoint
if ("TEMPERATURE" < SETPOINT - DEADBAND) {
//We've reached the lower limit, so check on the temperature
digitalWrite("HEATER", HIGH);
}
}
}

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: twee sketch gekoppeld

Berichtdoor Koepel » 26 Nov 2017, 23:55

Je begint met een openende code tag. Dan de sketch. Dan de afsluitende code tag.

[ code ]
...
Hier je hele sketch.
...
[ /code ]

Ik zie nog trouwens steeds die ("C"); en ook nog twee keer de temppin en drie keer de heater.

Dit heeft toch echt de voorkeur: const int heaterPin = 9;

Berichten: 23
Geregistreerd: 27 Nov 2016, 15:22

Re: twee sketch gekoppeld

Berichtdoor hansc » 27 Nov 2017, 17:29

Hallo Koepel, bedankt voor je feedback.
Ik ga de sketch helemaal opnieuw schrijven, volgens de instructies zodat het wat duidelijker wordt.
Ook met de haakjes.
Alleen ga ik 28-11 voor 3 a 4 weken naar het buitenland voor mijn werk. Zal wel begin volgend jaar worden dat ik eraan begin.
Nog maal dank voor je reactie.
M.vr.gr Hans

Terug naar Theekransje

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 6 gasten