Вверх ↑
Этот топик читают: Гость
Ответов: 70
Рейтинг: 0
#136: 2016-02-20 07:36:47 ЛС | профиль | цитата
Леонид писал(а):

Так что у Вас что то не получается?
карма: 0

0
Ответов: 8926
Рейтинг: 823
#137: 2016-02-20 09:31:35 ЛС | профиль | цитата
Konoplj2010, получится, куда денется
Последняя программка должна работать, выложите тот *.ini файл, с которым пробовали. Или номера датчиков, которые подключали.
карма: 19

0
Ответов: 70
Рейтинг: 0
#138: 2016-02-21 08:42:57 ЛС | профиль | цитата
Леонид писал(а):

Наконец то дошло как можно скинуть файл.
http://forum.hiasm.com/forum_serv.php?q=56&id=4220
карма: 0

0
Ответов: 8926
Рейтинг: 823
#139: 2016-02-24 18:58:18 ЛС | профиль | цитата
Konoplj2010, правильные адреса, программка должна работать! Ох, а может у вас датчики без +5 В питания, к каждому по два провода, или три ? При двухпроводном подключении надо давать время на зарядку по питанию!
карма: 19

0
Ответов: 70
Рейтинг: 0
#140: 2016-02-25 07:42:09 ЛС | профиль | цитата
Леонид писал(а):

Нет у меня с индивидуальным питанием. Там когда в режиме "Паразит" необходимо битики в памяти поменять, у меня по умолчанию. Я извиняюсь, поймите меня правильно, я понимаю что эта программа работает, но мне же тоже интересно сделать подобное. Мне нужна только вложенная схема для работы с датчиком, просто я в дальнейшем не собираюсь бросать электронику и буду далее пользоваться этой вложенной схемой. Если Вам не хочется (по какой то причине) сделать эту вложенную схему то это другой вопрос.
Блин если бы я знал что эта вложенная схема так долго затянется то я бы даже не сомневался и сразу же применил микроконтроллер который бы понимал UART и передавал на 1-Wire.
карма: 0

0
Ответов: 203
Рейтинг: 2
#141: 2016-02-25 10:45:04 ЛС | профиль | цитата
Konoplj2010, аналогично.
Konoplj2010 писал(а):
Блин если бы я знал что эта вложенная схема так долго затянется то я бы даже не сомневался и сразу же применил микроконтроллер который бы понимал UART и передавал на 1-Wire.

Я больше 2-х месяцев бился над DS18b20, часть датчиков то работала, то отваливалась, то снова работала. Схему так и не привел в божеский вид. В конце купил дешевую ARDUINO Nano v.3, за 2 часа набросал проект в FLProg и по Modbus тяну данные в Hiasm.
карма: 0

0
Ответов: 8926
Рейтинг: 823
#142: 2016-02-25 19:58:36 ЛС | профиль | цитата
Konoplj2010, долгожданная: cropped_program1wire.rar
(Адрес тоже команда, поэтому отдельной точки нет.) В поле "Блок команд.." можно заносить одну или несколько команд в HEX через ";" точку с запятой. В длинных командах (адрес, чтение памяти, чтение температуры) байты через пробел. Команда Reset формируется автоматически перед исполнением блока команд (если трижды ответа на неё не будет, вывалится окошко).
карма: 19

0
файлы: 1cropped_program1wire.rar [58.1KB] [506]
Ответов: 70
Рейтинг: 0
#143: 2016-02-25 20:13:23 ЛС | профиль | цитата
kaban4ik писал(а):

Та фишка в том что я специально для этого проекта сделал плату с преобразователем, даже две схемы. А на AVR-ке я бы сделал ещё пару недель назад.
https://www.youtube.com/watch?v=2fGaNy7JIJ0
карма: 0

0
Ответов: 70
Рейтинг: 0
#144: 2016-03-09 09:46:55 ЛС | профиль | цитата
Как я понимаю не будет этой вложеной схемки...
Только время зря потратил, извините за отобраннон время.
карма: 0

0
Ответов: 8926
Рейтинг: 823
#145: 2016-03-09 09:56:18 ЛС | профиль | цитата
Konoplj2010, "обижаешь начальник!" в моём предыдущем посте от 25.02.16 выложена
карма: 19

0
Ответов: 70
Рейтинг: 0
#146: 2016-03-10 15:36:57 ЛС | профиль | цитата
Леонид писал(а):

Ооооооо... А слона то я и не заметил, извините за то что "глаза дырявые". Я попробую и отпишусь.
А я уже разочаровался, начал по старинке делать, даже почти сделал...
------------ Дoбавленo в 15.36:
Konoplj2010 писал(а):

Нет, что то не так... Может быть я что то не правильно делаю.
http://forum.hiasm.com/xf/attach/share/IMG_20160310_152310.jpg
карма: 0

0
Ответов: 8926
Рейтинг: 823
#147: 2016-03-10 17:57:47 ЛС | профиль | цитата
Konoplj2010, всё работает, но команды лучше подавать блоком, и за командой 33h должна следовать команда "Чтение памяти" (FF FF FF FF FF FF FF FFh), за командой 55h должен следовать адрес, а за командой BEh должна следовать команда "Чтение температуры" (FF FFh), хотя можно и по одной команде, но в этом же порядке.
(Сейчас свой блочок с датчиками вновь подпаивал к блоку питания, да перепутал плюс с минусом, хоть питание с защитой, но и микросхема и датчики подогрелись, на картинке ещё не совсем остыли )
На картинке добавление -- забыл очищать строку команд при нажатии кнопки
wedonotlovecats.jpg
карма: 19

0
файлы: 1wedonotlovecats.jpg [159KB] [1250]
Ответов: 5227
Рейтинг: 587
#148: 2016-03-10 18:10:12 ЛС | профиль | цитата
Скоро месяц как эта бадяга решается (никак за это время уже брага два раза вызрела а за самогоном уже очередь в километр )

Konoplj2010, тебе только чего не давали, ссылки, схемы, ссылки на проги для мониторинга, а ты всё электронщик на месте пробуксовываешь.
Ну значит так надо (пока видать ему клепаешь на уши брагу и самогон на халяву пьёшь )
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 70
Рейтинг: 0
#149: 2016-03-11 06:25:13 ЛС | профиль | цитата
Леонид писал(а):

Блин, я ещё раз попробую. А команда RESET передаётся после каждого "Выполнить" или как?
------------ Дoбавленo в 06.25:
andrestudio писал(а):

У человека ещё даже не до конца собран агрегат, может быть ещё прийдётся переделывать картинку. Но датчики уже есть.
А самогон у человека гонится на старом аппарате вручную.
карма: 0

0
Ответов: 5227
Рейтинг: 587
#150: 2016-03-11 07:00:13 ЛС | профиль | цитата
Konoplj2010, ссылки я тебе давал, библиотека с примерами и схемой подключения там же.
Вот обёртка
#pas
unit OWire_Module;

interface

const


// Коды ошибок (возвращает функция OW_GetLastErr()).
OW_Err_OK = 0; // Ошибок нет.
OW_Err_Port = 1; // Нет открытого порта (для OW_OpenPort() - ошибка открытия порта).
OW_Err_NoDevice = 2; // Не найдены 1-Wire устройства.
OW_Err_IO = 3; // Ошибка при обмене информацией.
OW_Err_BaudRate = 4; // Ошибка при изменении скорости порта.
OW_Err_Search = 5; // Ошибка происходит если во время поиска ни одно 1-Wire устройство не ответило.
OW_Err_BadParam = 6; // Некорректный параметр.
OW_Err_NoData = 7; // Нет данных.

// Режим работы модуля.
OW_Mode_CPU_MinUsage = 1; // Уменьшить загрузку процессора.
OW_Mode_Invert = 2; // Инвертирование сигналов DTR и RTS.
OW_Mode_NoControlPin = 4; // Не изменять состояние управляющих выходов DTR и RTS.

// Управление выходами порта (функция SP_SetControlPin()).
SP_Pin_DTR = 1;
SP_Pin_RTS = 2;
SP_Pin_TXD = 4;
// Чтение состояния входов порта (функция SP_GetControlPin()).
SP_Pin_RI = 0;
SP_Pin_DCD = 1;
SP_Pin_DSR = 2;
SP_Pin_CTS = 3;


type

OW_RAM = packed record // ОЗУ датчика DS18B20.
L_Termo: Byte; // Младший байт температуры
H_Termo: Byte; // Старший байт температуры
Max_Termo: Byte; // Верхний предел температуры
Min_Termo: Byte; // Нижний предел температуры
Config: Byte; // Байт конфигурации
x: array [1..3] of Byte; // Резерв 3 байта (в датчике не реализовано)
CRC: Byte; // Контрольная сумма
end;

OW_Write_RAM = packed record
Max_Termo: Byte; // Верхний предел температуры
Min_Termo: Byte; // Нижний предел температуры
Config: Byte; // Байт конфигурации
end;

OW_SN = packed record // Идентификатор датчика.
DevType: Byte; // Тип устройства (код семейства).
Number: array [1..6] of Byte; // Серийный номер.
CRC: Byte; // Контрольная сумма.
end;

// Режим. См. константы OW_Mode_xxxx.
function OW_GetMode() : Integer; stdcall; external 'OWire_Module.dll';
function OW_SetMode(Mode:Integer) : Integer; stdcall; external 'OWire_Module.dll';
// Код ошибки (см. константы OW_Err_xxxx и SP_Err_xxxx).
function OW_GetLastError() : Integer; stdcall; external 'OWire_Module.dll';
// Закрывает последовательный порт.
function OW_ClosePort(Port:Integer=0): Boolean; stdcall; external 'OWire_Module.dll';
// Открывает последовательный порт.
function OW_OpenPort(ComPort:String; Port:Integer=0): Integer; stdcall; external 'OWire_Module.dll';
// Сброс 1-Wire устройства.
function OW_Reset(Port:Integer=0): Boolean; stdcall; external 'OWire_Module.dll';
// Чтение байта.
function OW_ReadByte(Port:Integer=0): Byte; stdcall; external 'OWire_Module.dll';
// Запись байта.
function OW_WriteByte(Byte:Byte; Port:Integer=0): Byte; stdcall; external 'OWire_Module.dll';
// Вычисление контрольной суммы.
function OW_GetCRC(Buff:Pointer; Count:Integer): Byte; stdcall; external 'OWire_Module.dll';
// Чтение массива байт.
function OW_ReadMultiByte(Buff:Pointer; Count:Integer; Port:Integer=0): Boolean; stdcall; external 'OWire_Module.dll';
// Запись массива байт.
function OW_WriteMultiByte(Buff:Pointer; Count:Integer; Port:Integer=0): Boolean; stdcall; external 'OWire_Module.dll';
// 1-Wire устройство передает 8-битный код семейства (10h для DS18S20 и 28h для DS18B20),
// затем 48-битный серийный номер, а затем 8-битную CRC для проверки правильности принятой информации.
function OW_ReadROM(var Info:OW_SN; Port:Integer=0): Boolean; stdcall; external 'OWire_Module.dll';
// Эта функция позволяет адресовать на шине требуемое 1-Wire устройство.
// Необходимо передать 64-битный код 1-Wire устройства и только то,
// что имеет такой код, будет «откликаться» до следующего импульса сброса.
function OW_SelectROM(var Info:OW_SN; Port:Integer=0): Boolean; stdcall; external 'OWire_Module.dll';
// Пропуск сравнения серийного номера.
function OW_SkipROM(Port:Integer=0): Boolean; stdcall; external 'OWire_Module.dll';
// Начало поиска 1-Wire устройств.
function OW_SearchROM_Reset(): Integer; stdcall; external 'OWire_Module.dll';
// Перечисление устройств. Вернет не 0 если еще есть устройства.
function OW_SearchROM_Enum(var Sensor:OW_SN; Port:Integer=0): Boolean; stdcall; external 'OWire_Module.dll';
// Поиск температурных датчиков у которых результат последнего измерения температуры
// выходит за предустановленные пределы TH и TL.
function OW_SearchAlarm_Reset(): Integer; stdcall; external 'OWire_Module.dll';
// Перечисление устройств. Вернет не 0 если еще есть устройства.
function OW_SearchAlarm_Enum(var Sensor:OW_SN; Port:Integer=0): Boolean; stdcall; external 'OWire_Module.dll';
// Чтение данных из промежуточного ОЗУ датчика DS18B20.
function OW_ReadRAM(var Info:OW_RAM; Port:Integer=0): Boolean; stdcall; external 'OWire_Module.dll';
// Запись данных в промежуточное ОЗУ датчика DS18B20.
function OW_WriteRAM(var Info:OW_Write_RAM; Port:Integer=0): Boolean; stdcall; external 'OWire_Module.dll';
// Копирование данных из промежуточного ОЗУ в энергонезависимую память датчика.
// Это требует около 10мс.
function OW_CopyRAM(Port:Integer=0): Boolean; stdcall; external 'OWire_Module.dll';
// Запуск процесса преобразования температуры.
function OW_ConvertT(Port:Integer=0): Boolean; stdcall; external 'OWire_Module.dll';
// Эта функция действует обратным образом по отношению к процедуре OW_CopyRAM(),
// т.е. она позволяет считать байты TH и TL из энергонезависимой памяти в промежуточное ОЗУ.
function OW_Recall(Port:Integer=0): Boolean; stdcall; external 'OWire_Module.dll';
// Проверка, использует ли 1-Wire устройство паразитное питание.
// 1 - не использует или 0 если использует.
function OW_ReadPowerSupply(Port:Integer=0): Boolean; stdcall; external 'OWire_Module.dll';
// Функция возвращает дескриптор порта.
function SP_PortID(Port:Integer=0): Integer; stdcall; external 'OWire_Module.dll';
// Функция возвращает количество байт в приемном буфере порта.
function SP_CountInBytes(Port:Integer=0): Integer; stdcall; external 'OWire_Module.dll';
// Чтение байта из порта.
function SP_ReadByte(Port:Integer=0): Byte; stdcall; external 'OWire_Module.dll';
// Запись байта в порт.
function SP_WriteByte(Byte:Byte; Port:Integer=0): Integer; stdcall; external 'OWire_Module.dll';
// Чтение состояния управляющих входов.
function SP_GetControlPin(Pin:Integer; Port:Integer=0): Integer; stdcall; external 'OWire_Module.dll';
function SP_SetControlPin(Pin:Integer; Value:Boolean; Port:Integer=0): Boolean; stdcall; external 'OWire_Module.dll';

implementation

end.
Неужели просто взять и использовать готовое и проверенное
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)