Projet_VictorAvecUnK/sketch_ino.cpp

84 lines
2.1 KiB
C++

#include <unistd.h>
#include "core_simulation.h"
#include "app/include/Terrarium.h"
#include "app/include/TerrariumParameter.h"
Terrarium terrarium(1);
TerrariumParameter temperature(25, 20);
TerrariumParameter pressure(3000,2990);
TerrariumParameter ph(8,6);
// la fonction d'initialisation d'arduino
void Board::setup(){
// on configure la vitesse de la liaison
Serial.begin(9600);
// on fixe les pin en entree et en sorite en fonction des capteurs/actionneurs mis sur la carte
pinMode(1, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(0, OUTPUT);
pinMode(2, OUTPUT);
digitalWrite(0,LOW);
//pinMode(6, OUTPUT);
}
// la boucle de controle arduino
void Board::loop(){
char buf[100];
static int cpt=0;
static int bascule=0;
int i=0;
//for(i=0;i<10;i++){
// if (i%3==0) {
// lecture sur la pin 1 : capteur de temperature
temperature.setValue(analogRead(1));
sprintf(buf, "temperature %f", temperature.getValue());
Serial.println(buf);
if ((temperature.is2Low()) && (terrarium.getRadState() == LOW)) {
digitalWrite(0, HIGH);
terrarium.setRadState(HIGH);
}
else if ((temperature.is2High() ) && (terrarium.getRadState() == HIGH)) {
digitalWrite(0, LOW);
terrarium.setRadState(LOW);
}
// lecture sur la pin 2 : capteur de temperature
pressure.setValue(analogRead(5));
sprintf(buf, "pressure %f", pressure.getValue());
Serial.println(buf);
if ((pressure.is2Low()) && (terrarium.getTapState() == LOW)) {
digitalWrite(2, HIGH);
terrarium.setTapState(HIGH);
}
else if ((pressure.is2High() ) && (terrarium.getTapState() == HIGH)) {
digitalWrite(2, LOW);
terrarium.setTapState(LOW);
}
// }
// if(cpt%5==0){
// tous les 5 fois on affiche sur l ecran la temperature
sprintf(buf,"%f",temperature.getValue());
bus.write(1,buf,100);
//bus.requestFrom(1,buf,100);
// }
cpt++;
sleep(1);
//}
}