Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » нестабильные показания на lcd


нестабильные показания на lcd

Сообщений 1 страница 6 из 6

1

доброго времени суток, подскажите пожалуйста как избавится от движения показаний на lcd? один датчик температуры это ds18b20, а второй ntc 10kОм

0

2

Cls
Locate 1 , 1 : Lcd "temp1" ; "  " ; Ss ; Chr(0) ; "C"
Locate 2 , 1 : Lcd "temp2" ; "  " ; B8 ; Chr(0) ; "C"
Waitms 100

вывод на lcd

0

3

Переводи в String и выводи как строковую переменную
Пример : 

              ''' 14_bit_данные_ацп_0 = 14_bit_данные_ацп_0 - 490

                 Сопротивление_0 = 14_bit_данные_ацп_0 / 134
                   Сопротивление_0 = Сопротивление_0 + 100
                   Сопротивление_0d = Сопротивление_0
                   A0 = 0.0000010241 * Сопротивление_0d
                   B0 = A0 + 0.00063962
                   B0 = B0 * Сопротивление_0d
                   C0 = B0 + 2.3992
                   Температура_0d = C0 * Сопротивление_0d
                   Температура_0d = Температура_0d - 247.29
                   Температура_0_single = Температура_0d

                  Температура_0_str = " "
                   Температура_0_str = Fusing(температура_0_single , "&.&")
                   Температура_0_str_lcd = Format(температура_0_str , "    0")
                   Температура_0_str_lcd = Температура_0_str_lcd + "°C"
                   Флаг_есть_данные_ацп_0 = 0

             
код (С)sasha_1973  код (С) Skull

Отредактировано Skull (2015-01-11 23:54:26)

0

4

Do

A = Getadc(0)
B = 10230000 / A
B = B - 10000
B1 = B / 10000
B2 = Log(b1)

B2 = B2 * 298
B2 = B2 + 3340.25
B3 = 995394.5 / B2
B3 = B3 - 273

B8 = Str(b3)
B8 = Format(b8 , "0.0")

   1wreset
   1wwrite &HCC
   1wwrite &H44
Waitms 750
   1wreset
   1wwrite &H55
   1wverify Dsid1(1)
   1wwrite &HBE
   I1 = 1wread(2)

I1 = I1 * 10
I1 = I1 \ 16
Ss = Str(i1)
Ss = Format(ss , "0.0")

Cls
Locate 1 , 1 : Lcd "temp1" ; "  " ; Ss ; Chr(0) ; "C"
Locate 2 , 1 : Lcd "temp2" ; "  " ; B8 ; Chr(0) ; "C"
Waitms 100
Loop

у меня через String и написано, мне кажется это в железе дело

0

5

первое это вычисление температуры по датчику ntc, дальше датчик ds18b20 (это подсмотрел на просторах сети, красивая короткая запись понравилась), по началу писалась программа под ntc, но стало интересно насколько точно он показывает и добавил ds18b20 для проверки

0

6

"temp1" ; "  " ; Ss ; Chr(0) ; "C"

Ты не понял, все это выражение надо загнать в строку. тогда ее размер будет фиксирован.
сбрось код полностью.  у меня что-то похожее было на двустрочных восьмисимвольных производства загадочной фирмы из Поднебесной. у них странная адресация.

Отредактировано Skull (2015-01-12 03:13:38)

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » нестабильные показания на lcd