Доброго всем дня ,
прошу поделится опытом использования схем , для контроля остановки , в моём случае необходимо получать сигнал при остановке редуктора .
Заранее спасибо за все коментарии по теме . Раздел: Промышленная электроника
Здравствуйте дорогие форумчане. Хочу сделать часы, вольтметр, индикатор уровня топлива в одном флаконе на Atmega8. Вообщем есть у меня код на вольтметр, "бакометр", и часов. Только умею я выводить на дисплей с контроллером HD44780! а сейчас нужно вывести на 4-x разрядный семисегментный индикатор. Но я всё перечитал пересмотрел и ничего не понял. Принцип работы то знаю но как организовать хз. Нашел код сделал на нем часы но в этом коде нет таймера. т.е. значения считываются раз в 20мс. поэтому бакометр и вольтметр не работают. Не могли бы вы мне в этом помочь собрать весь этот код и вывести на семисегментный индикатор? Код бакометра. Config Adc = Single , Prescaler = Auto , Reference = Avcc
Dim Inercia As Byte Dim Inercia_eep As Eram Byte
Dim Flag_acp As Bit
Declare Sub Sens_fuel Dim Litr As Byte Dim Adc_litr(70) As Integer Dim Adc_litr_eep(70) As Eram Integer
Dim Fuel_adc As Integer Dim Fuel_adc_array(10) As Integer Dim Fuel As Byte
Inercia = Inercia_eep If Inercia = 255 Then Inercia = 2
For Fuel = 1 To 70 'считываем из еепром в массив Adc_litr(fuel) = Adc_litr_eep(fuel) Next Do 'для данного алгоритма необходимо организовать опрос ацп 1 раз в секунду. в данном случае я использовал четность/нечетность секунд времени: If Seco.0 = 0 And Flag_acp = 0 Then 'заходим на АЦП один раз в секунду Flag_acp = 1 Gosub Acp Elseif Seco.0 = 1 And Flag_acp = 1 Then Flag_acp = 0 Gosub Acp End If ...................... For Fuel = 1 To 70 'определение остатка топлива на основе калибровочных данных If Adc_litr(fuel) <= Fuel_adc And Fuel_adc < Adc_litr(fuel + 1) Or Adc_litr(fuel + 1) = -1 Then Fuel = Fuel - 1 Exit For End If Next ...................... Lcd Fuel Loop
Acp: Start Adc U = Getadc(0) 'напряжение борт сети U_sin = U U_sin = U_sin / 50 'U_str = Fusing(u_sin , "00.0") For Y = Inercia To 2 Step -1 Fuel_adc_array(y) = Fuel_adc_array(y - 1) 'сдвиг элементов массива вправо Next Fuel_adc_array(1) = Getadc(1) 'в 1-ый элемент массива записываем значение АЦП в данный момент Stop Adc Fuel_adc = 0 For Z = 1 To Inercia Fuel_adc = Fuel_adc + Fuel_adc_array(z) Next Fuel_adc = Fuel_adc / Inercia Fuel_adc = 1023 - Fuel_adc 'для датчиков "ПОЛНЫЙ БАК - 0 Ом" Return
'============================SENS_FUEL========================================== Sub Sens_fuel Cls 'Waitms 500 Local B As Integer Local Fuel_adc_str As String * 4 Local B_str As String * 4 Do Start Adc Fuel_adc = Getadc(1) Stop Adc Fuel_adc = 1023 - Fuel_adc 'для датчиков "ПОЛНЫЙ БАК - 0 Ом" If Up = 0 Then Call Zvuk Incr Litr Waitms 200 End If If Litr > 70 Then Litr = 0 If Down = 0 Then Call Zvuk Decr Litr Waitms 200 End If If Litr = 255 Then Litr = 70 If Ok = 0 Then Call Zvuk Adc_litr_eep(litr + 1) = Fuel_adc Locate 1 , 15 Lcd "Ok" Waitms 1000 End If If Esc = 0 Then Call Zvuk Cls Waitms 300 Exit Do End If B = Adc_litr_eep(litr + 1) Home Lcd "Calibr.litres " ; If Litr < 10 Then Lcd " " ; Litr Else Lcd Litr End If Lowerline Fuel_adc_str = Str(fuel_adc) Lcd "ADC=" ; Format(fuel_adc_str , "0000") ; " " Locate 2 , 13 B_str = Str(B) If B > -1 Then Lcd Format(b_str , "0000") Else Lcd "----" End If Loop End Sub
Вольтметр: Sub Voltmeter() Start Adc Readadc1 = Getadc(1) Voltage = Readadc1 / 1023 Voltage = Voltage * 30 Locate 2 , 1 Lcd Chr(4) ; Fusing(voltage , "##.#") ; "B" Stop Adc End Sub
часы: Sub Getds1307() I2cstart I2cwbyte &HD0 I2cwbyte &H00 I2cstart I2cwbyte &HD1 I2crbyte Seco , Ack I2crbyte Mine , Ack I2crbyte Hour , Ack I2crbyte Day , Ack I2crbyte Dat , Ack I2crbyte Month , Ack I2crbyte Year , Nack I2cstop Seco = Makedec(seco) Mine = Makedec(mine) Hour = Makedec(hour) Day = Makedec(day) Dat = Makedec(dat) Month = Makedec(month) Year = Makedec(year) End Sub '-------------------------------------время------------------------------------' Sub Getclock() Call Getds1307() Locate 1 , 1 Lcd Chr(1) Locate 1 , 5 If Mine > 9 Then Lcd Mine Else Lcd "0" ; Mine End If Locate 1 , 4 Lcd ":" Locate 1 , 2 If Hour > 9 Then Lcd Hour Else Lcd "0" ; Hour End If End Sub
Раздел: AVR
http://zpostbox.ru/e...y_peremennogo..(схема ниже) http://radio-hobby.o...cle.php?story.. Вот две схемы нашел,пробовал обе,такая фигня при включении стрелка улетает на конечное деление шкали и 1-2сек так держиться,и это даже при неодпаянном полевике,а при подпаянном полевике вообще жесть боюсь головка микроамперметра сгорит если я еще разок включу,почему все так??? Раздел: Песочница или Вопрос-Ответ
Изготовление согласующего трансформатора понадобится магнитопровод сечением 1.....3 см2.
Помогите разобраться сечением 1....3 см2. Раздел: Песочница или Вопрос-Ответ
наверняка у всех было так, когда сидишь в комнате за компьютером с выключенным светом, и в тот момент когда ты хочешь что то напечатать или нажать на какую нибудь клавишу, глазам очень трудно быстро перестроиться с яркого монитора на еле освещенную клавиатуру, и задаешься вопросом можно ли ее как нибудь круто креативно подсветить?? =) Так вот, что если на буквенные клавишы сделать двух цветную подсветку, например стоит латинская раскладка, и подсвечены только латинские буквы, и наоборот, кириллическая раскладка, латинские буквы не горят, подсвечена только кириллица, а функциональные клавиши и цифры сделать какого нибудь одно цвета. Меня также озадачил вопрос, как клава будет распознавать раскладку и правильно ее подсвечивать?? из под ОС я так понимаю подсветкой управлять не удастся?? с радостью приму советы. рекомендации критику (от части) Раздел: Периферия
Короче есть такой вот генератор. и он исправно выдаёт 1МГц получистых тактов. Как мне выделить грамотно главную 1-ю гармонику? (т.е. 1МГц) я расчитал что мне нужна катушка. которая выдает 2,78354900116313 мкГн для кондёра в 9100pF. по этим расчётам я намотал катушку. но проблема в том что когда я соединяю катушку с выходом гениратора то получается по сути КЗ, так как сопротивление катушки слишком маленькое. и тактовая частота на выходе исчезает. Раздел: Начинающим
Доброго времени суток.
Попросили меня сделать схему термодатчика. И все бы ничего , если бы не жесткие параметры.
При нуле градусов цельсия должен он срабатывать, включать реле на конце, а при 10 ти градусах отключать.
Реле , к примеру, управляет "обогревателем".
Сделать по отдельности включение или выключение - в принципе можно на оу.
А вот как реализовать - 0 градусов реле включается на конце , как только температура окружающей среды возрастает до 10 градусов - происходит отключение, температура со временем падает до 0 , снова включается реле- не знаю.
Выслушаю ваши советы... Раздел: Начинающим
подключил в реальности так... не работает.... напряжение на vdd gnd соответствует доку ( http://transistor.by/i/pdf/kr537ru10.pdf) зажимаю кнопку D0 и нажимаю кнопку WR по идее должно записать в первый адрес(резистор 10к на А0 с плюса) ... при нажатии на кнопку OE ничего не происходит на D0.... в чем проблема ? Раздел: Песочница или Вопрос-Ответ
Делаю не сложную железку на ATiny45. Вышло так что его придется чуть разогнать - 10mHz при 3V. По даташиту должно быть 8mHz.
При этом активно используется еепром на чтение. И 1 раз делается запись еепрома целиком (инициализация при первом включении).
Вопросы к знатокам.
На сколько большая вероятность слета ЕЕПРОМ при таком напряжении и разгоне?
Имеет ли смысл перенести эти данные во флэш. Раздел: Песочница или Вопрос-Ответ
Здравствуйте, хочу подключить Atmega8.
[img]http://2.bp.blogspot.com/-80QIidBFfrA/TV-qA__vaJI/AAAAAAAAAG0/PSoqp_me1HA/s320/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-1.png[/img]
Вот схема подключения. У меня вопрос по поводу L1. Честно скажу никогда не имел никакого дела с катушками индуктивности.
Я только читал теорию.
Вот в схеме это дроссель?
Как он вообще выглядит, дайте картинку. И какие у него характеристики? Раздел: Радиоэлементы
[next-page][/next-page]
|