Ответы в темах
-
АвторСообщения
-
09.07.2023 в 01:55 #112112
День добрый
Печатная плата изготовлена и распаяна из архива LB_2.41 https://mega.nz/folder/0cVHCQxD#v88F3NDciYzCcNducI30SA
Прошивка скомпилирована и прошита из архива через arduino-1.8.5-windows
В user_config_h_ датчик давления сменил на свой BMP280
// Какой используем датчик давления
//#define Pressure_BMP085
//#define Pressure_BMP180
#define Pressure_BMP280
//#define Pressure_BME280
Давление показывало все время – 760
Датчик давления BMP280 по шине I2C имеет адрес – 0x76
В библиотеке Adafruit_BMP280_Library-master в файле Adafruit_BMP280 изменил #define BMP280_ADDRESS (0x76)
Датчик давления начал показывать верные значения
ОБРАТИТЕ ВНИМАНИЕ!!! Может возникнуть такая ситуация, при которой модуль не будет определяться при подключении его по шине I2C. Дело в том, что каждое устройство на этой шине должно иметь свой уникальный адрес. Данная серия модулей в зависимости от модификации может иметь адреса 0x77 или 0x76. Библиотека Adafruit_BMP280.h использует по умолчанию адрес 0х77. Чтобы изменить его на 0х76 необходимо открыть файл Adafruit_BMP280.h установленной библиотеки любым текстовым редактором и найти там нижеследующую строку:#define BMP280_ADDRESS (0x77) /**< The default I2C address for the sensor. */Меняем адрес в скобках на 0х76, сохраняем файл и перекомпилируем программу. После данных манипуляций проблема должна исчезнуть.
Клапана у меня нормально закрыты
В user_config_h_ написано
// Если клапан нормально закрыты ставим false
// Если клапан нормально открытый ставим true
#define PWM_CH1_Invert false
#define PWM_CH2_Invert false
#define PWM_CH3_Invert false
#define PWM_CH4_Invert false
// Дальше 5 строк не трогаем
#define PWM_CH5_Invert false
#define PWM_CH6_Invert false
#define PWM_CH7_Invert false
#define PWM_CH8_Invert false
#define PWM_CH9_Invert false
Они не работали
Пришлось поменять на
// Если клапан нормально закрыты ставим false
// Если клапан нормально открытый ставим true
#define PWM_CH1_Invert true
#define PWM_CH2_Invert true
#define PWM_CH3_Invert true
#define PWM_CH4_Invert true
// Дальше 5 строк не трогаем
#define PWM_CH5_Invert false
#define PWM_CH6_Invert false
#define PWM_CH7_Invert false
#define PWM_CH8_Invert false
#define PWM_CH9_Invert false
Все заработало
В чем причина, почему при конфигурации false не работают клапаны?
Подключил датчики безопасности
1. Датчик уровня воды: Черный – не используетсяСиний – земля (GND)Желтый – данные (in A0)Коричневый – питание (+5v)
2. Датчик паров этанола:GND датчика – земля (GND)A0 датчика – данные (in A1)Vcc датчика – питание (+5v)
Датчик уровня жидкости при увеличении жидкости в банке загорается красным светодиодом на датчике, но не раздается сигнал о превышении уровня жидкости, также на сенсорном экране не отображается срабатывание датчика.
Датчик паров этанола при приближении к банку со спиртом загорается красный светодиод на датчике, но не раздается сигнал о наличии спирта в воздухе, а также сенсорном экране не отображается срабатывание датчика.
Попытался изменять значение в user_config_h_#define thresholdAN0 1000#define
thresholdAN1 1500#define
thresholdAN2 1000#define
thresholdAN3 1000#define
Увеличивал, уменьшал значение не помогло, датчики не работают
В прошивкев файле adc.cpp
#include “adc.h”
Adafruit_ADS1115 ads;
void adcInit() {
ads.begin();
ads.setGain(GAIN_ONE);
}
// чтение всех внешних каналов АЦП
void adcLoop() {
uint16_t data;
if (millis() – adcTimeRead >= 1000) {
adcTimeRead = millis();
//Serial.println(“Start”);
data = ads.readADC_SingleEnded(AN0);
data = ads.readADC_SingleEnded(AN0);
if (data > thresholdAN0 && data < 65000) { adcIn[0].data = data; adcIn[0].allert = true; }
else { adcIn[0].data = 0; adcIn[0].allert = false; }
data = ads.readADC_SingleEnded(AN1);
data = ads.readADC_SingleEnded(AN1);
if (data > thresholdAN1 && data < 65000) { adcIn[1].data = data; adcIn[1].allert = true; }
else { adcIn[1].data = 0; adcIn[1].allert = false; }
data = ads.readADC_SingleEnded(AN2);
data = ads.readADC_SingleEnded(AN2);
if (data > thresholdAN2 && data < 65000) { adcIn[2].data = data; adcIn[2].allert = true; }
else { adcIn[2].data = 0; adcIn[2].allert = false; }
data = ads.readADC_SingleEnded(AN3);
data = ads.readADC_SingleEnded(AN3);
if (data > thresholdAN3 && data < 65000) { adcIn[3].data = data; adcIn[3].allert = true; }
else { adcIn[3].data = 0; adcIn[3].allert = false; }
//Serial.print(“AIN0: “); Serial.println(adcIn[0].data);
//Serial.print(“AIN1: “); Serial.println(adcIn[1].data);
//Serial.print(“AIN2: “); Serial.println(adcIn[2].data);
//Serial.print(“AIN3: “); Serial.println(adcIn[3].data);
//Serial.println(” “);
в файле adс.h
// Проект центра открытого проектирования у Счастливчика https://LuckyCenter.ru
#ifndef _ADC_h
#define _ADC_h
#if defined(ARDUINO) && ARDUINO >= 100
#include “arduino.h”
#else
#include “WProgram.h”
#endif
#include “setting.h”
#include <Adafruit_ADS1015.h>
extern void adcInit();
extern void adcLoop();
#endif
При срабатывании одного из датчиков безопасности должно: -прозвучать сигнал о срабатывании датчика?
– на сенсорном экране отобразится срабатывание датчика?
В чем причина не работающих датчиков безопасности?
Датчики безопасности при срабатывании работают прямо на сигнализацию или останавливают какие-либо процессы (ратификации, дистилляции)?
Датчик протечки имеет 2 провода.
Как его подсоединить ( один провод от датчика на питание (+5v), а второй на (in A2) ?
При отсутствии напряжения 220 в на сенсорном экране отображается 220V.
При подаче напряжения 220В на сенсорном экране отображается 380V.
При этом тен отключен от твердотельного реле (SSD-40DA) и подключен ZMPT101B
В чем причина, неправильно ли работает ZMPT101B или проблема в прошивке?
Как проверить работу ZMPT101B?
В прошивке в файле adc.cpp
// Замер напряжения сети
uint16_t minVoltage = 1024;
uint16_t maxVoltage = 0;
uint16_t adcRez;
unsigned long timeAdc = millis() + 40;
while (timeAdc > millis()) {
adcRez = analogRead(0);
if (minVoltage > adcRez) minVoltage = adcRez;
if (maxVoltage < adcRez) maxVoltage = adcRez;
}
//Voltage = (maxVoltage – minVoltage) >> 2; // для MCP602
Voltage = maxVoltage – minVoltage; // для LM358
if (Voltage < 50) Voltage = 230; // модуль zmpt101 отсутствует
float deltaPercent = 100 – (Voltage / 2.3);
// вычислим коррекцию для ТЭНа
if (power.heaterPower == 100) power.heaterPowerCorr = 100;
else if (power.heaterPower > 0) {
deltaPercent /= (100 / power.heaterPower);
if ((power.heaterPower + deltaPercent) <= 100 && (power.heaterPower + deltaPercent) >= 0) power.heaterPowerCorr = uint8_t(power.heaterPower + deltaPercent);
else if ((power.heaterPower + deltaPercent) > 100) power.heaterPowerCorr = 100;
else if ((power.heaterPower + deltaPercent) < 0) power.heaterPowerCorr = 0;
}
else power.heaterPowerCorr = 0;
}
}
В чем разница между прошивкой что в архиве от JONA https://mega.nz/folder/0cVHCQxD#v88F3NDciYzCcNducI30SA и от разработчика luckycenter.ru https://github.com/TheLuckyChip/LuckyBox ?
Будет ли на плате LB_2.41 от JONA https://mega.nz/folder/0cVHCQxD#v88F3NDciYzCcNducI30SA корректно работать прошивка от разработчика luckycenter.ru https://github.com/TheLuckyChip/LuckyBox ?
-
АвторСообщения