Подружился с оговорками MAX6675 для ESP8266 NodeMcu v3
Подружился с оговорками MAX6675 для ESP8266 NodeMcu v3
Е…ся я с этим блоком. Хочу создать небольшой контроллер , но не хотел он измерять температуру постоянно, не сочтите за флуд но думаю медленно (я начинающий), пересмотрев все темы и код исходник печи представленный создателем блока понял что можно поставить на вход внутренние часы реального времени с детектором числа, тогда код нагружен, но датчик работает исправно
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось hess2222 29 сен 2021, 20:18, всего редактировалось 2 раза.
-
- Полковник
- Сообщения: 3992
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 136 раз
- Поблагодарили: 148 раз
Подружился с оговорками MAX6675 для ESP8266 NodeMcu v3
Кажется Вы верно ухватили суть проблемы.
Пришлите пожалуйста код проекта, возможно смогу дать полезные рекомендации.
Пришлите пожалуйста код проекта, возможно смогу дать полезные рекомендации.
Подружился с оговорками MAX6675 для ESP8266 NodeMcu v3
Спасибо
обязательно, только вечером смогу ))))

Подружился с оговорками MAX6675 для ESP8266 NodeMcu v3
[ref]hess2222[/ref], было бы хорошо, если при подобных вопросах сразу выкладывать проект.
Из того, что вы описали, я вижу такую проблему. Вы пытались опрашивать датчик в каждом цикле программы. А это несколько раз (возможно сотни и тысячи раз) в секунду. И датчик просто не мог при этом корректно работать.
Вам надо просто установить генератор + Rtrig, на вход разрешения датчика. Настроить выдачу импульсов раз в 2-5 сек. И думаю, что всё заработает
Из того, что вы описали, я вижу такую проблему. Вы пытались опрашивать датчик в каждом цикле программы. А это несколько раз (возможно сотни и тысячи раз) в секунду. И датчик просто не мог при этом корректно работать.
Вам надо просто установить генератор + Rtrig, на вход разрешения датчика. Настроить выдачу импульсов раз в 2-5 сек. И думаю, что всё заработает
Подружился с оговорками MAX6675 для ESP8266 NodeMcu v3
Возможно, но я пробовал устанавливать на 1-ну секунду симметричный мультивибратор и у меня не получилось, вопрос а зачем rtrig?
Подружился с оговорками MAX6675 для ESP8266 NodeMcu v3
Просто мультивибратор тут не поможет. Так как у вас получается, что в течении половины секунды датчик опрашивается очень часто.
Тут как раз и спасает Rtrig. Он запускается по переднему фронту мультивибратора и опрашивает датчик только один раз. Следующий опрос будет на следующем фронте мультивибратора.
Тут как раз и спасает Rtrig. Он запускается по переднему фронту мультивибратора и опрашивает датчик только один раз. Следующий опрос будет на следующем фронте мультивибратора.
Подружился с оговорками MAX6675 для ESP8266 NodeMcu v3
Если схема с рисунка не работает, то там возможно ещё причина в том, что часы устанавливаются в каждом цикле. И не понятно, выдают ли они при этом вообще какой сигнал.
Поэтому я и предложил поставить генератор + триггер
Поэтому я и предложил поставить генератор + триггер
Подружился с оговорками MAX6675 для ESP8266 NodeMcu v3
Нет , схема с рисунка рабочая , меня интересует общий вопрос, на кой нужен этот вход и можно ли сделать как нибудь без него то бы просто был датчик без всякой трихомудии
Отправлено спустя 2 часа 6 минут 12 секунд:
Всё, файл отправлен))) Спасибо что откликнулись!
Отправлено спустя 2 часа 6 минут 12 секунд:
Всё, файл отправлен))) Спасибо что откликнулись!
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Подружился с оговорками MAX6675 для ESP8266 NodeMcu v3
Можно, но вот вопрос, как Вы отнесетесь к электроприбору, отключить который можно только выдернув шнур из розетки?hess2222 писал(а): 29 сен 2021, 18:14 ...на кой нужен этот вход и можно ли сделать как нибудь без него...
Отправлено спустя 59 минут 53 секунды:
Проверьте. По идее чаще чем раз в 0,5с опрашиваться не должен, если надо реже измените в параметрах.
И настройки пинов в параметрах маленько привел в порядок.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 3992
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 136 раз
- Поблагодарили: 148 раз
Подружился с оговорками MAX6675 для ESP8266 NodeMcu v3
1.По используемому блоку MAX6675 - он использует библиотеку, которая при каждом обращении к блоку тормозит на время >9ms.
Фрагмент кода из библиотеки ниже.
[spoiler]double MAX6675::readCelsius(void) {
uint16_t v;
digitalWrite(cs, LOW);
_delay_ms(1);
v = spiread();
v <<= 8;
v |= spiread();
digitalWrite(cs, HIGH);
if (v & 0x4) {
// uh oh, no thermocouple attached!
return NAN;
//return -100;
}
v >>= 3;
return v*0.25;
}
double MAX6675::readFahrenheit(void) {
return readCelsius() * 9.0/5.0 + 32;
}
byte MAX6675::spiread(void) {
int i;
byte d = 0;
for (i=7; i>=0; i--)
{
digitalWrite(sclk, LOW);
_delay_ms(1);
if (digitalRead(miso)) {
//set the bit to 0 no matter what
d |= (1 << i);
}
digitalWrite(sclk, HIGH);
_delay_ms(1);
}
return d;
}[/spoiler]
В конкретном проекте это мало на что влияет, но лучше бы этого избегать.
2. В качестве пина S0 для сенсора выбран пин 4 (D2) - лучше выбрать другой пин (например 14(D5)).
Пины D1,D2(5,4) - лучше не занимать, это интерфейс i2c, он пригодится при развитии проекта.
3. Если Вы будете расширять в проекте вывод на дисплей Nextion, то я бы рекомендовал несколько иной подход обмена между с дисплеем (без тормозов).
-----
Если Вам интересно продвижение в выбранном Вами направлении, и Вы готовы освободить пин 4, то я мог бы набросать Вам основу проекта, который бы Вы могли развивать без угрозы появления "тормозов" и пр.
Фрагмент кода из библиотеки ниже.
[spoiler]double MAX6675::readCelsius(void) {
uint16_t v;
digitalWrite(cs, LOW);
_delay_ms(1);
v = spiread();
v <<= 8;
v |= spiread();
digitalWrite(cs, HIGH);
if (v & 0x4) {
// uh oh, no thermocouple attached!
return NAN;
//return -100;
}
v >>= 3;
return v*0.25;
}
double MAX6675::readFahrenheit(void) {
return readCelsius() * 9.0/5.0 + 32;
}
byte MAX6675::spiread(void) {
int i;
byte d = 0;
for (i=7; i>=0; i--)
{
digitalWrite(sclk, LOW);
_delay_ms(1);
if (digitalRead(miso)) {
//set the bit to 0 no matter what
d |= (1 << i);
}
digitalWrite(sclk, HIGH);
_delay_ms(1);
}
return d;
}[/spoiler]
В конкретном проекте это мало на что влияет, но лучше бы этого избегать.
2. В качестве пина S0 для сенсора выбран пин 4 (D2) - лучше выбрать другой пин (например 14(D5)).
Пины D1,D2(5,4) - лучше не занимать, это интерфейс i2c, он пригодится при развитии проекта.
3. Если Вы будете расширять в проекте вывод на дисплей Nextion, то я бы рекомендовал несколько иной подход обмена между с дисплеем (без тормозов).
-----
Если Вам интересно продвижение в выбранном Вами направлении, и Вы готовы освободить пин 4, то я мог бы набросать Вам основу проекта, который бы Вы могли развивать без угрозы появления "тормозов" и пр.
Подружился с оговорками MAX6675 для ESP8266 NodeMcu v3
Спасибо !!!! Так он начал работать намного шустрее.Конечно
интересно))) Но извиняюсь он уже не занят , он у меня пуст или я чего то не понимаю, не хочется выглядеть тупым

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя