relais added
This commit is contained in:
parent
8b58b3a443
commit
d354be1077
4 changed files with 53 additions and 1 deletions
|
@ -23,7 +23,7 @@ pico_sdk_init()
|
||||||
|
|
||||||
# Add executable. Default name is the project name, version 0.1
|
# Add executable. Default name is the project name, version 0.1
|
||||||
|
|
||||||
add_executable(gbmanager gbmanager.cpp lcd.cpp ds18b20.cpp)
|
add_executable(gbmanager gbmanager.cpp lcd.cpp ds18b20.cpp relais.cpp)
|
||||||
|
|
||||||
pico_set_program_name(gbmanager "gbmanager")
|
pico_set_program_name(gbmanager "gbmanager")
|
||||||
pico_set_program_version(gbmanager "0.1")
|
pico_set_program_version(gbmanager "0.1")
|
||||||
|
|
|
@ -8,11 +8,15 @@
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "ds18b20.h"
|
#include "ds18b20.h"
|
||||||
#include "lcd.h"
|
#include "lcd.h"
|
||||||
|
#include "relais.h"
|
||||||
|
|
||||||
|
// GPIOs used
|
||||||
constexpr uint I2C_SDA_PIN = 26;
|
constexpr uint I2C_SDA_PIN = 26;
|
||||||
constexpr uint I2C_SCL_PIN = 27;
|
constexpr uint I2C_SCL_PIN = 27;
|
||||||
constexpr uint DS18B20_PIN = 28;
|
constexpr uint DS18B20_PIN = 28;
|
||||||
|
constexpr uint RELAIS_PIN = 18;
|
||||||
|
|
||||||
|
// Custom chars for the LCD
|
||||||
constexpr char CUSTOM_CHAR_DEG = 0xDF;
|
constexpr char CUSTOM_CHAR_DEG = 0xDF;
|
||||||
constexpr char CUSTOM_CHAR_AE = 0xE1;
|
constexpr char CUSTOM_CHAR_AE = 0xE1;
|
||||||
|
|
||||||
|
@ -22,11 +26,16 @@ int main() {
|
||||||
// Enable UART so we can print status output
|
// Enable UART so we can print status output
|
||||||
stdio_init_all();
|
stdio_init_all();
|
||||||
|
|
||||||
|
// Initialize the LCD
|
||||||
auto myLCD = LCD(i2c1, I2C_SDA_PIN, I2C_SCL_PIN);
|
auto myLCD = LCD(i2c1, I2C_SDA_PIN, I2C_SCL_PIN);
|
||||||
myLCD.clear();
|
myLCD.clear();
|
||||||
|
|
||||||
|
// Initialize the temp sensor
|
||||||
// DS18B20 ds = DS18B20(pio0, DS18B20_PIN);
|
// DS18B20 ds = DS18B20(pio0, DS18B20_PIN);
|
||||||
|
|
||||||
|
// Initialize the relais
|
||||||
|
Relais relais(RELAIS_PIN);
|
||||||
|
|
||||||
float temp_act{0};
|
float temp_act{0};
|
||||||
float temp_tgt{28.0};
|
float temp_tgt{28.0};
|
||||||
float temp_diff{0.5};
|
float temp_diff{0.5};
|
||||||
|
@ -56,6 +65,8 @@ int main() {
|
||||||
}
|
}
|
||||||
isHeating ? heatInfo = ">H<" : heatInfo = " ";
|
isHeating ? heatInfo = ">H<" : heatInfo = " ";
|
||||||
|
|
||||||
|
relais.activate(isHeating);
|
||||||
|
|
||||||
lcdText.str("");
|
lcdText.str("");
|
||||||
lcdText.clear();
|
lcdText.clear();
|
||||||
lcdText.precision(4);
|
lcdText.precision(4);
|
||||||
|
|
23
relais.cpp
Normal file
23
relais.cpp
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
#include "relais.h"
|
||||||
|
|
||||||
|
Relais::Relais(uint gpio) : gpio{gpio} {
|
||||||
|
gpio_set_dir(gpio, true);
|
||||||
|
gpio_init(gpio);
|
||||||
|
off();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Relais::activate(bool active) {
|
||||||
|
if (active) {
|
||||||
|
gpio_pull_down(gpio);
|
||||||
|
} else {
|
||||||
|
gpio_pull_up(gpio);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Relais::on() {
|
||||||
|
activate(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Relais::off() {
|
||||||
|
activate(false);
|
||||||
|
}
|
18
relais.h
Normal file
18
relais.h
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#ifndef RELAIS_H
|
||||||
|
#define RELAIS_H
|
||||||
|
|
||||||
|
#include "pico/stdlib.h"
|
||||||
|
#include "hardware/gpio.h"
|
||||||
|
|
||||||
|
class Relais {
|
||||||
|
public:
|
||||||
|
Relais(uint gpio);
|
||||||
|
void activate(bool active);
|
||||||
|
void on();
|
||||||
|
void off();
|
||||||
|
|
||||||
|
private:
|
||||||
|
uint gpio;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in a new issue