Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: demanik  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Помогите разобраться новичку (как правильно?)
Помогите разобраться новичку
Anatoliy1000 Дата: Ср, 21.11.2018, 14:17  |                                                                                                                Сообщение # 256
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 107
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Теперь хотелось бы разобраться с передачей данных дальше чем ИК пульт. В наличии имеется:
- радио модуль (верней скоро будет, через неделю):
- блютуз модуль;
- 3Г модуль
Требуется передать число на расстояние этих модулей.
1. Мое предположение - это количество нажатий с прерываниями. Мне кажется, что самый простой способ передачи данных (простых) через него.
2. По этому модулю очень тяжело разобраться. В теме про этот модуль был исходник  - практически не разобраться без наставника.
3. Это для меня вообще темная лошадка. Но если как-то можно работать простыми АТ командами через 12F675, 16F628, 16F716, то я бы попробовал.
В идеале хочется все это познать. Но не погружаясь на годовые изучения мат части. Если был бы готовый код для моих пиков (какой-то универсальный) с пояснениями, то вообще было бы здорово.

Итак уважаемые Сансэи с чего предложите начать?

Кстати нашел сегодня вот такое и там почему-то  модуль вайфай "вставляется" и работай. Может такое для любого модуля можно сделать?

Добавлено (22.11.2018, 13:25)
---------------------------------------------
Вот в этой статье написано как легко сделать gsm сигнализацию. статья
Можно ли туда "воткнуть" sim900, модуль N3, который я указал выше?


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
Сообщение отредактировал Anatoliy1000 - Ср, 21.11.2018, 14:19
ЯНДЕКС Дата: 21.11.2018
xvovanx Дата: Чт, 22.11.2018, 22:47  |                                                                                                                Сообщение # 257
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 360
Репутация: 23   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

По первой ссылке -это только приемник с кодировкой 1527, к нему нужен еще передатчик. У передатчика 4 входа данных, у приемника 4 выхода. Какой код передали 0000-1111, такой и получили.
По второй ссылке не блутуз модуль, а передатчик-приемник NRF24L01 с дополнительным усилителем мощности. Управляется по SPI, коды есть в сети, но так запросто действительно разобраться тяжеловато.
Про третий блок не скажу - "не щупал" такой  wink
Anatoliy1000 Дата: Вт, 18.12.2018, 19:31  |                                                                                                                Сообщение # 258
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 107
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Подскажите где на форуме (думаю уже обсуждалось) способ передачи числа от пик 628 компьютеру (и назад) по usart?
И какая схема подключения через пик кит 2 (какую программу использовать)?

Добавлено (24.12.2018, 12:51)
---------------------------------------------
Подскажите как правильно (с экономией места) записать следующее:

Делаю пробы с терморезистором. В приведенном выше примере выбирал одно из значений, но:
1. это отнимает много памяти.
2. точность без десятых.
Если ставить только формулу, то вообще точность падает.
Как взять два близких значения для вставки в формулу?


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
xvovanx Дата: Пн, 24.12.2018, 15:19  |                                                                                                                Сообщение # 259
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 360
Репутация: 23   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата Anatoliy1000 ()
Если ставить только формулу, то вообще точность падает.

Почему точность падает? Я когда использовал терморезистор, то замерил его сопротивление на двух температурах (скажем 20 и 36гр), подключил в делитель и на вход АЦП. Составил уравнение прямой (зависимость t линейна) через две точки. Точность вполне устроила.
Прикрепления: 5791024.jpg(45.2 Kb)

Сообщение отредактировал xvovanx - Пн, 24.12.2018, 15:31
Anatoliy1000 Дата: Вт, 25.12.2018, 06:38  |                                                                                                                Сообщение # 260
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 107
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Хоть убейте не могу вставить формулу для расчета. Пробую по формуле ОТ СЮДА.
Но там нужна формула  натурального логарифма, а в ПИК 12F675 видимо она недоступна.
По вашей формуле у меня абра кадабра получается, температура "комнатная" прыгает от 0 до 200.
Если можете поясните какой формулой можно воспользоваться в моем случае:
- ПИК 12Ф675
- терморезистор с константой 3435
- постоянный резистор 15Ком
- ADCON0 = %00001011 - левое выравнивание, АЦП от 0 до 65000
- Трезистор при 25 градусах 10Ком

Добавлено (25.12.2018, 11:40)
---------------------------------------------
Сделал следующим образом:
- взял выборку значений от -25 до +25 градусов для своего термистора ОТ СЮДА.
- составил функцию зависимости ОТ СЮДА.
- обработал и вставил в программу такой код:

1. Поправьте если можно оптимизировать код.
2. Как сделать с запятой (лучше точность)?
3. Как поставить минус перед числом если отрицательная температура?



Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
Сообщение отредактировал Anatoliy1000 - Вт, 25.12.2018, 11:42
Aleksey_174 Дата: Ср, 26.12.2018, 06:23  |                                                                                                                Сообщение # 261
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 77
Репутация: 14   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

Если тебе нужна точность, то нужно делать что - то наподобие первого варианта, где у тебя много места занимает (т.к. характеристики терморезисторов резко меняются при определенных температурах) или менять значения в формулах. Либо взять электронный датчик типа DS18B20.
А на счет минусов и точек, тебе столько вбивали про индикацию, что пора уж и самому думать.
Anatoliy1000 Дата: Вт, 22.01.2019, 08:03  |                                                                                                                Сообщение # 262
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 107
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Всем здравствуйте! Подскажите простое решение на примере пик 16ф628 или чего-нибудь готового "как измерять падение напряжения"?
То есть нужно не точное измерение как мультиметр с применением дополнительных деталей (например стабилитрон), а програмно на базе опорного напряжения или АЦП.
Хочу сделать мигание светодиода при разряде батарейки ниже 3,5в.
Как всегда с меня +


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
brown Дата: Вт, 22.01.2019, 16:19  |                                                                                                                Сообщение # 263
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 355
Репутация: 12   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

В 628 есть два компаратора и источник опорного напряжения. Изучайте даташит, тем более он есть на русском.

Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
Anatoliy1000 Дата: Чт, 31.01.2019, 10:32  |                                                                                                                Сообщение # 264
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 107
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Помогите разобраться.
На 716 пике накидал небольшой код измерения АЦП, но почему-то при указании 
ADCON1 = %00000101
'0x0 A      A A A 
'0x1 VREF   A A A 
'100 A      D A A 
'101 VREF   D A A 
'11x D      D D D 
не измеряет, а если меняю на 000, то все нормально. Измеряю на AN0
Прикрепления: 6706379.bas(2.4 Kb) · var_1.pdsprj.f006749838109590_(20.6 Kb) · 7630259.zip(21.4 Kb)


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
Anatoliy1000 Дата: Чт, 31.01.2019, 10:51  |                                                                                                                Сообщение # 265
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 107
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Выдает такую ошибку когда выбираю значения 000 или 100, хотя преобразует АЦП нормально.
Прикрепления: 2953967.png(4.2 Kb)


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
xvovanx Дата: Чт, 31.01.2019, 22:47  |                                                                                                                Сообщение # 266
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 360
Репутация: 23   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Новомодный Протеус к сожалению открыть не могу (юзаю надежный русский старый 7.10 версии). Схемы не вижу, так что советы вслепую будут. Ошибки выдает насчет времени замера АЦП, попробуй выставить Fosc/8 (я  такое ставлю) ADCON0 биты 7-6.
А насчет 101 в регистре ADCON1, при 101 там должен быть в схеме подключен Vref референс (от чего берут мах значение) на входе RA3, не знаю не вижу подключено ли в схеме.

Сообщение отредактировал xvovanx - Чт, 31.01.2019, 23:18
Anatoliy1000 Дата: Пт, 01.02.2019, 04:52  |                                                                                                                Сообщение # 267
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 107
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Цитата xvovanx ()
Ошибки выдает насчет времени замера АЦП, попробуй выставить Fosc/8 (я  такое ставлю) ADCON0 биты 7-6.

Спасибо помогло.
Выскочила новая ошибка (прикрепил скрин)
Прикрепления: 9056921.png(2.4 Kb)


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
Anatoliy1000 Дата: Пт, 01.02.2019, 06:02  |                                                                                                                Сообщение # 268
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 107
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Почитал как должен быть подключен Vref. Не знаю правильно ли, но перестало выдавать ошибку по вольтажу, но и считать АЦП на АN0 тоже перестало.
Настройки:
ADCON1 = %00000101
'101 VREF   D A A 
Скрин схемы:
Прикрепления: 4923656.png(45.7 Kb)


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
xvovanx Дата: Пт, 01.02.2019, 09:43  |                                                                                                                Сообщение # 269
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 360
Репутация: 23   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата Anatoliy1000 ()
Не знаю правильно ли,


1- Вход сброса MCLR-инверсный, поэтому всегда должен быть подключен на плюс (при сбросе кнопкой коротим на землю).
2- при работе АЦП как и компаратора на вывод Vref подается напряжение сравнения (для компаратора) и опорное (для АЦП). Т.е. скажем подав на Vref 2В, АЦП будет делить эти два вольта на 1024 ступеньки. Поэтому вход опорный не может быть подключен на землю как у тебя в схеме.

П.С.Если для тебя не принципиално использование именно входа Vref с напряжением отличным от 5 В, то выбери регистрами в таблице, где используется опорное не Vref , а +5В и сравнивай входной сигнал с опорными 5В.
Прикрепления: 5566194.png(48.0 Kb)

Сообщение отредактировал xvovanx - Пт, 01.02.2019, 16:41
Aleksey_174 Дата: Сб, 02.02.2019, 05:55  |                                                                                                                Сообщение # 270
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 77
Репутация: 14   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

1.На счет MCLR Вован прав, хотя он у тебя в выложенном файле стоит правильно.
2.Declare All_Digital On  при измерении напряжения порты не ставятся в цифровые т.к. ты используешь аналоговые, хотя в моей версии Proton почему то можно.
3.Регистры нужно устанавливать наоборот ADCON1 = %10100000
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Помогите разобраться новичку (как правильно?)
Поиск: