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

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

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

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


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Как подключить несколько внешних АЦП к ATMega64


Как подключить несколько внешних АЦП к ATMega64

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

1

При работе над проектом - возникла проблема нехватка ног АЦП у ATMega64. Все 8 заняты -выполняют свое дело! А нужно еще 8-10 измерить значений! Что посоветуете?Использовать внешние АЦП или подключить параллельно ATMEGA16(использовать ее ноги АЦП) и по UART передавать ATMega64 нужные мне данные?Хочется, чтобы было все красиво.

0

2

Какие внешние АЦП посоветуете,цена - качество! Работаю с 5В. И главное, чтобы был в наличие в Протеусе.

0

3

Внешний аналоговый коммутатор

0

4

Нашел код на подключение 2 мультиплексор 4051. Шапку изменил и подключение к дисплею.Работает при подачи на ножку +5В  отображает 1023, при отсутствие напряжения 636 Вот он

$regfile = "m64def.dat"
$crystal = 1000000

Config Lcdpin = Pin , Rs = Porta.0 , E = Porta.3 , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7

Config Lcd = 20 * 4
Cursor Off

Config Adc = Single , Prescaler = Auto , Reference = Avcc


Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Output
Config Portf = Input
Out1 Alias Portb.1
Out2 Alias Portb.2
Out3 Alias Portb.3
Reset Out1
Reset Out2
Reset Out3

Dim Sensor(8) As Word , Sensor2(8) As Word
Dim Data_out As Byte , Buff As Byte
Data_out = 0
Declare Sub Cek
Cls

Do
Gosub Cek
'MUX 1
Locate 1 , 1
Lcd Sensor(1) ; " "



Locate 2 , 1
Lcd Sensor(2) ; " "
Locate 3 , 1
Lcd Sensor(3) ; " "
Locate 4 , 1
Lcd Sensor(4) ; " "
Locate 1 , 6
Lcd Sensor(5) ; " "
Locate 2 , 6
Lcd Sensor(6) ; " "
Locate 3 , 6
Lcd Sensor(7) ; " "
Locate 4 , 6
Lcd Sensor(8) ; " "

'MUX 2
Locate 1 , 11
Lcd Sensor2(1) ; " "
Locate 2 , 11
Lcd Sensor2(2) ; " "
Locate 3 , 11
Lcd Sensor2(3) ; " "
Locate 4 , 11
Lcd Sensor2(4) ; " "
Locate 1 , 16
Lcd Sensor2(5) ; " "
Locate 2 , 16
Lcd Sensor2(6) ; " "
Locate 3 , 16
Lcd Sensor2(7) ; " "
Locate 4 , 16
Lcd Sensor2(8) ; " "
Loop

Sub Cek
Start Adc
Incr Data_out
If Data_out = 8 Then Data_out = 0
Out1 = Data_out.0
Out2 = Data_out.1
Out3 = Data_out.2
Buff = Data_out + 1
Sensor(buff) = Getadc(0)
Sensor2(buff) = Getadc(1)
End Sub
Return

возникла проблема - при изменение этого кода, протеус отображает одни нули.... вот код, что я делаю не так?Мне нужно присвоить значение, чтобы я мог с ними работать в дальнейшем...Как упростить код!
Do

Gosub Cek
Dim Dw1 As Word
Dim Dw2 As Word
Dim Dw3 As Word
Dim Dw4 As Word
Dim Dw5 As Word
Dim Dw6 As Word
Dim Dw7 As Word
Dim Dw8 As Word
Dim Dw9 As Word
Dim Dw10 As Word
Dim Dw11 As Word
Dim Dw12 As Word
Dim Dw13 As Word
Dim Dw14 As Word
Dim Dw15 As Word
Dim Dw16 As Word
Sensor(1) = Dw1
Sensor(2) = Dw2
Sensor(3) = Dw3
Sensor(4) = Dw4
Sensor(5) = Dw5
Sensor(6) = Dw6
Sensor(7) = Dw7
Sensor(8) = Dw8
Sensor2(1) = Dw9
Sensor2(2) = Dw10
Sensor2(3) = Dw11
Sensor2(4) = Dw12
Sensor2(5) = Dw13
Sensor2(6) = Dw14
Sensor2(7) = Dw15
Sensor2(8) = Dw16

Lcd Dw1 ; Dw2 ; Dw3 ; Dw4 ; Dw5 ; Dw6 ; Dw7 ; Dw8 ; Dw9 ; Dw10 ; Dw11 ; Dw12 ; Dw13 ; Dw14 ; Dw15 ; Dw16
wait 2
Cls
Loop

Отредактировано Hard (2015-06-15 22:04:30)

0

5

http://sh.uploads.ru/t/ARTbV.jpg
Принципиальная схема.. может есть другой вариант опроса с мультиплексора. Мне нужно опросить каждую ножку на наличие напряжения и присвоить переменной.

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Как подключить несколько внешних АЦП к ATMega64