Например TDA7294

Форум РадиоКот • Просмотр темы - Передатчик FS1000A - как ослабить передачу?
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 20:35:28

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 37 ]    , 2
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Вт фев 21, 2017 18:49:17 
Потрогал лапой паяльник
Аватар пользователя

Карма: 17
Рейтинг сообщений: 229
Зарегистрирован: Вт окт 30, 2012 18:09:24
Сообщений: 356
Откуда: Россия.
Рейтинг сообщения: 0
risez писал(а):
Есть намного более крутые по чувствительности приемники, чем базовый.
Есть конечно, но на данный момент мы говорим об этих, что Вы выложили в старт посте.
risez писал(а):
Есть передатчик стандартный на 433 Мгц
СпойлерИзображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Вт фев 21, 2017 21:47:35 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6884
Откуда: .ru
Рейтинг сообщения: 0
risez писал(а):
Мне интересно от roman.com услышать, какой номинал сопротивления он использовал для уменьшения усиления передатчика?

для уменьшения усиления приёмника, а не передатчика... Передатчик я не трогал))

Я бы для начала добавил подстроечный резистор (~1МОм) так:
Вложение:
0016.JPG [147.12 KiB]
Скачиваний: 783

risez писал(а):
Я вижу эти тесты в теориии, на практике цифровые устройства передают и принимают то, что нужно передать и принять на довольно большое расстояние.

Не понял... Там все тесты на практике, а не в теории))

Там же (ниже) есть мой тест на дальность этих модулей...
roman.com писал(а):
Провели тест на дальность. Получилось так:

-Частота 433,92 Мгц.
-Мощность передатчика TX ~0,005 Ватт (при 5 вольт).
-Чувствительность приёмника RX ~1,2 мкВ (при 5 вольт).
-Антенна 1/4 штырь.

Дальность устойчивой связи fs1000a, в зависимости от высоты антенны:

-Высота антенны TX = 0 метров. Высота антенны RX = 1 метр.
-дальность в чистом поле - до 170 метров.
-дальность в мелком лесу - до 120 метров.
...
-Высота антенны TX =10 метров. Высота антенны RX = 1 метр.
-дальность в мелком лесу - более 600 метров.
-дальность по трассе - более 900 метров.
...

При желании можно сравнить))

По дому (если конечно у вас дом не 1000 квадратных метров)) ) они работают без антенн (естественно с замираниями).
risez писал(а):
цель на самом деле - 5-10 сантиметров чтобы работало, больше не надо.

Это может быть не так просто. Для этого нужна очень маленькая мощность, при которой ганератор просто не сможет запуститься...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Ср фев 22, 2017 12:16:33 
Открыл глаза

Зарегистрирован: Пн июл 21, 2014 15:14:01
Сообщений: 62
Рейтинг сообщения: 0
Ну имхо найти минимум, где он работает, если будет недостаточно - небольшой экранчик.

Вот еще идею написали:

Там сигнал управления задаёт базовый ток передатчика. Поставьте резистор, лучше потенциометр килоОм на 10-100 последовательно в сигнальный провод. Мощность и упадёт, если переборщить - генератор совсем не возбудится.

Добавлено after 36 minutes 38 seconds:
На сигнальный провод кинул 90кОм сопротивление (больше под рукой нет) передача упала до 1.5м, что уже почти то, что нужно. Нужно попробовать увеличить сопротивление, блин пока нечем. Но заметил, что 50кОм, что 90кОм - результат плюс мину один 1.5м. Может и правда тут еще провода излучают.

Добавлено after 16 minutes 40 seconds:
100кОм - упало до метра! Нужно навесить еще...

Добавлено after 59 minutes 41 second:
В общем для стандартного приемника результат есть, но к сожалению RXB6 приемник видит даже заглушенный сигнал без проблем по всему помещению. Дальше 5 метров не отходил, но бьет уверенно. :(


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Ср фев 22, 2017 15:44:15 
Друг Кота
Аватар пользователя

Карма: 64
Рейтинг сообщений: 1099
Зарегистрирован: Ср ноя 17, 2010 23:10:55
Сообщений: 5837
Откуда: Ижевск LO66NU
Рейтинг сообщения: 0
Здесь уже проскакивало правильное решение:
risez писал(а):
Николай_С писал(а):
Полностью согласен.
В данном случае мощность передатчика уменьшается добавлением в цепь эмиттера Q1 резистора номиналом от 100 до 1 кОм. Добейтесь четкого срабатывания команд при максимальном сопротивлении резистора. Это и будет минимальная мощность передатчика.

P.s. Кстати, этот же транзистор стоит в УМ дальнобойного радиотелефона Sanyo CLT-55,65,75,85KM. С хорошим приёмником и антенной дОбит на десятки километров.


Добавлено after 8 minutes 6 seconds:
Типа так:

Изображение

Резистор может быть подстроечным (движок соединить с нижним концом), номиналом в пределах 10к.....20к.


_________________
В начале жизнь мучает вопросами, в конце - ответами...


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Чт фев 23, 2017 12:56:54 
Открыл глаза

Зарегистрирован: Пн июл 21, 2014 15:14:01
Сообщений: 62
Рейтинг сообщения: 0
От 100 Ом до 1кОм, или от 100 кОм до 1 кОм?
Ниже также предложение от 10 - 20кОм.

Добавлено after 1 hour 6 minutes 6 seconds:
И еще вопрос по поводу идеи резистора на питание повесить, снизив ток?

По сути идеи сводятся к:
1) Понизить ток, подаваемый на передатчик.
2) Понизить ток с эмиттера транзистора.
3) Понизить ток передаваемого сигнала.

4) Совместить все эти идеи? :beer:

Добавлено after 1 hour 28 minutes 59 seconds:
В общем задача решилась проще - на питание 3.3В(работает от 3 до 12В, подали почти минимум) при сопротивлении в 5.5кОм на питание, передатчик уже не слышно в метре от хорошего! чувствительного приемника. В 10см от него - прием уверенный. Т.е. мы понизили мощность передатчика, ограничив ток потребления до 0.6 милиампера. Можно наверняка либо еще пару сотен ом накинуть, либо небольшой соорудить экран.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Чт фев 23, 2017 14:14:18 
Друг Кота
Аватар пользователя

Карма: 64
Рейтинг сообщений: 1099
Зарегистрирован: Ср ноя 17, 2010 23:10:55
Сообщений: 5837
Откуда: Ижевск LO66NU
Рейтинг сообщения: 0
risez писал(а):
2) Понизить ток с эмиттера транзистора.
Снижение тока тут не основное. Резюк в эмиттере определяет величину ООС по току, его увеличение плавно снижает усиление одновременно значительно улучшая стабильность рабочего режима.

_________________
В начале жизнь мучает вопросами, в конце - ответами...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Пн окт 05, 2020 23:23:26 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
Помогите разобраться. Есть у меня модуль RXB6. Есть у меня Ардуина с программой для просмотра кодов. Ну например вставляешь скажем радиомодуль на 315 мгц и начинаешь с пульта кнопки нажимать и видишь какие коды дает пульт. Ну а потом уже с этими кода делаешь че хочешь.

Так вот вставиль я этот модуль, питание, граунд, дата. Все по класссике. Нажимаю на пульт. Ничего. Пульт кварцованый на 433.92 Указано на кварце. Модуль тоже на 433. Но указано 433 и все. Короче, не высветиль мне экранчик ничего. Как будто и нет приема.

Ладно, я на Дата поставли светодиод и резюк на 4.7к. Включил, сразу приметил, что светодиод помаргивает, даже если не даю сигнал с плуьта. А когда даю сигнал тоже уверенно моргает. Странно.

Подключил вместо светодиода наушники. Услышал шум, ну типа эфирного шума и услышал сигналы дальних сигналок и каких-то пультов. Нажал на свой поульт услышал характерным переливчатый звук. Отнес пульт на 10м , попросил нажать, услышал уверенный прием.

Гдето в интернетах читал, что якобы у этого модуля RXB6 очнеь слабый выходной сигнал. И че с этим делать, как с эитм жить? Транзистор какой ставить типа усилителя. И вообще почему шум эфира в наушниках? Впроде этот приенмик гетеродинный и должне как то получше рабоать.

Что скажете?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Вт окт 06, 2020 07:29:20 
Друг Кота

Карма: 49
Рейтинг сообщений: 523
Зарегистрирован: Чт фев 20, 2014 18:57:55
Сообщений: 18526
Рейтинг сообщения: 1
Эти приемопередатчики тупые, вся кодировка/декодировка в мк, возможно ваш пульт использует совсем другую. Не шумят только тупые приемники или без антенны (хотя некоторым нравится, даже видосы выкладывают где, забравшись в сервис-меню какого нибудь аппарата за 200 тыс руб, выкручивают чувствительность в минимум - оппа, не шумит!), главное чтобы при подаче сигнала обеспечивалось необходимое соотношение сигнал/шум.

_________________
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Вт окт 06, 2020 10:23:08 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6884
Откуда: .ru
Рейтинг сообщения: 1
1- Первым делом подключаем осциллограф и смотрим сигнал...
2- Если очень слабый выходной сигнал, то в МК есть АЦП, который работает с очень слабым выходным сигналом (милливольты).
3- И самое главное - выкидываем Ардуину)) :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Ср окт 07, 2020 11:09:43 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
Morroc, оказалось что действительно слабый выход.

roman.com, вот допустим есть аналоговый вход. И есть выход с этого радиомодуля. Какой будет алгоритм?

Ну допустим при определенном напряжении устанавливаю высокий уровень на цифровой лапке. А если напряжение уменьшилось то сразу низкий ставлю


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Ср окт 07, 2020 14:09:10 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6884
Откуда: .ru
Рейтинг сообщения: 1
В теме "Радиоуправляемый кораблик своими руками." мы делали радиоуправление на разных радио модулях.
https://www.radiokot.ru/forum/viewtopic ... 8&t=148087
На самодельных радио модулях...
Вложение:

На заводских радио модулях...
Вложение:
Nokia 5110.JPG [128.35 KiB]
Скачиваний: 139

Там же мы сняли осциллограммы самодельных радио модулей...
Вложение:

Там же мы подробно разобрали алгоритм работы самодельных радио модулей...
https://www.radiokot.ru/forum/viewtopic ... &start=441
Алгоритм для ЦИФРОВОГО входа МК очень простой - непрерывно измеряем напряжение на выходе приёмника.
Вложение:
Обработка сигнала.jpg [230.18 KiB]
Скачиваний: 133

Там же мы переделали схему на АЦП... (правда не доделали)
Вложение:
Дискретизация и квантование.jpg [49.34 KiB]
Скачиваний: 125

olegue писал(а):
Какой будет алгоритм?

Алгоритм для АНАЛОГОВОГО входа МК очень простой - непрерывно измеряем напряжение с помощью АЦП на выходе детектора приёмника относительно среднего значения. Далее тоже самое что и для ЦИФРОВОГО входа МК.
Благодаря АЦП мы можем обрабатывать сигнал прямо с выхода детектора приёмника, без дополнительных усилителей на транзисторах...

Добавлено after 22 minutes 44 seconds:
P.S.
Все современные радио модули построены по типовой схеме с использованием АЦП на выходе детектора приёмника.

Например вот модуль популярный радио модуль для FM приёмника:
Вложение:
Screenshot_1.jpg [55.15 KiB]
Скачиваний: 134

Или вот например популярный радио модуль для рации:
Вложение:
Screenshot_2.jpg [58.09 KiB]
Скачиваний: 138

На этом модули китайцы делают практически все свои рации.
Например вот популярная китайская рация на этом модуле:
Вложение:
китайская рация.jpg [10.19 KiB]
Скачиваний: 119

А вот к примеру популярный радио модуль Lora
Вложение:
Screenshot_3.jpg [55.21 KiB]
Скачиваний: 127

И т.д.

Короче... во всех современных радио модулях стоит АЦП на выходе детектора приёмника.
А для обработки сигнала используют сигнальный процессор (DSP).
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Ср окт 07, 2020 17:54:46 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
roman.com, простите, не смог пока осилить все что вы дали.
Пока иду "своим" путем, пытаясь постичь основы.

Код:
ISR(ADC_vect)  //Прерывание по АЦП
{
   
   // Крутим резистор
   // В переменной  ADCH оцифрованное значение напряжения на лапке PB4 (adc
   t=ADCH;
   
   if (t>200)
      {
   PORTB|=(1<<PB0);
    }
   else
   {
     PORTB|=(0<<PB0);
      }
   
   }



я кручу резстор и когда дохожу до значения 200 светодиод загорается, но почему, черт возьми, он не гаснет, когда кручу назад. В чем пробелема?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Ср окт 07, 2020 19:50:28 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6884
Откуда: .ru
Рейтинг сообщения: 1
olegue писал(а):
Пока иду "своим" путем, пытаясь постичь основы.

Хорошо.
Какой у Вас МК ?

Рекомендую начать изучение АЦП с выводом данных на простые светодиоды... 8 штук:
Вот я спаял на ATmega128 светодиоды... 8 штук:
Вложение:
Screenshot_1.jpg [48.09 KiB]
Скачиваний: 124

Вот я спаял на ATmega8 светодиоды... 8 штук:
Вложение:
Screenshot_2.jpg [9.8 KiB]
Скачиваний: 121

схема на ATmega8 такая... светодиоды... 8 штук:
Вложение:
Screenshot_3.jpg [49.15 KiB]
Скачиваний: 139

Кручу резистор и смотрю показание АЦП в двоичном виде (0...255)... на светодиоды... 8 штук: ))

ISR(ADC_vect) //Прерывание по АЦП
{

// Крутим резистор
// Выводим ADCW в порт D
PORTD=ADCW;

}

Добавлено after 6 minutes 9 seconds:
P.S.
У АЦП два регистра для чтения:

ADCH // 0000 0011 - старший регистр АЦП
ADCL // 1111 1111 - младший регистр АЦП

Или можно читать сразу два регистра за один раз:

ADCW // 0000 0011 1111 1111
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Ср окт 07, 2020 22:12:32 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
attiny13. C старшими и младшим регистрами пока не понятно. Вроде как у меня должно работать в том коде который я привел.

Добавлено after 24 minutes 30 seconds:
Да, понял с регстрами. Но!
В порте D - 8 бит -8 диодов подключено

а в объединенном регистре ADCW = 16бит.
Какие светодиоды зажгутся? Младшего регистра?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Ср окт 07, 2020 23:49:01 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6884
Откуда: .ru
Рейтинг сообщения: 0
attiny13 плохой МК.
1- Мало выводов (светодиоды 8 шт. не подключишь).
2- Данные АЦП можно передавать на компьютер (программа терминал) по UART. Но в attiny13 нет UART. Там вообще ничего нет))

Все МК AVR имеют АЦП 10-бит (1111111111):
Вложение:
Screenshot_1.jpg [112.77 KiB]
Скачиваний: 129

В одном регистре 8 бит.
Чтоб запихнуть 10 бит сделали два регистра:

ADCH // 00000011 - старший регистр АЦП - сюда записываются 2 старших бит АЦП.
ADCL // 11111111 - младший регистр АЦП - сюда записываются 8 младших бит АЦП.

В сумме два эти регистра (ADCH + ADCL) содержат 10 бит:

11 (2 бита) + 1111 1111 (8 бит) = 1111111111 (10 бит).

в объединенном регистре ADCW = 1111111111 (10 бит).

Какие светодиоды зажгутся? Зажгутся Младшего регистра:

PORTD=ADCW; // ADCL = 11111111 - младший регистр АЦП - сюда записываются 8 младших бит АЦП.
:tea:

Добавлено after 28 minutes 46 seconds:
Чтоб зажечь все 10-бит (1111111111) надо припаять ещё 2 светодиода на другой порт.
Например в ATmega128 есть свободный порт А.
Код будет такой:

ISR(ADC_vect) //Прерывание по АЦП
{
// Крутим резистор
// Выводим ADCL в порт D
PORTD=ADCL;
// Выводим ADCH в порт A
PORTA=ADCH;
}
//Зажгли все 10-бит (1111111111) АЦП. ))

Или можно так:
ISR(ADC_vect) //Прерывание по АЦП
{
// Крутим резистор
// Выводим ADCW в младшие 8 бит в порт D
PORTD=ADCW;
// Выводим ADCW в старшие 2 бит в порт A
PORTA=ADCW >> 8;
}
//Зажгли все 10-бит (1111111111) АЦП. ))

P.S.
Если читать два регистра (ADCH + ADCL) по отдельности, то при чтении всегда надо первым читать младший регистр (ADCL).
Об этом написано в даташите подробно. Там хитрая система чтения регистров (эти два регистра связаны между собой внутри МК).
:tea:
Поэтому проще читать "бъединенный регистр ADCW".
На самом деле это никакой не "бъединенный регистр ADCW", это два отдельных регистра, просто компилятор думает что это один регистр "бъединенный регистр ADCW". ))
:tea:

Добавлено after 26 minutes 52 seconds:
Но сначала надо правильно настроить АЦП.

Вот полный список всех битов настройки и флагов АЦП (всего два регистра настройки):
----------
ADMUX=0b01100001; // настройка АЦП
----------
//ADMUX
//1... .... REFS1 - опорное напряжение - 0
//.1.. .... REFS0 - опорное напряжение - 1 - AVCC
//..1. .... ADLAR - Выравнивание результата
//...1 .... -
//.... 1... MUX3 - номер канала
//.... .1.. MUX2 - номер канала
//.... ..1. MUX1 - номер канала
//.... ...1 MUX0 - номер канала - ADC0...ADC7 (0000=ADC0)
----------
//REFS1=0 REFS0=0 - ИОН=AREF
//REFS1=0 REFS0=1 - ИОН=AVCC
//REFS1=1 REFS0=0 - не используется (зарезервировано)
//REFS1=1 REFS0=1 - ИОН=2.56V (встроенный ИОН 2.56V)
----------
//ADLAR=1
// Выравнивание результата в левую сторону < (8-бит):
// ADCH // 1111 1111 - читать вторым (или первым, тогда последии 2 бит потеряем)
// ADCL // 0000 0011 - читать первым
//ADLAR=0
// Выравнивание результата в правую сторону > (10-бит):
// ADCH // 0000 0011 - читать вторым
// ADCL // 1111 1111 - читать первым
----------
// MUX3...MUX0 - номер канала:
// 0000 - ADC0
// 0001 - ADC1
// .................
// 0111 - ADC7

// 1110 - ИОН (1,23V) !

----------
ADCSRA|=0b01000000; // Старт АЦП.
----------
//ADCSRA
//1... .... ADEN - 1- вкл ADC. (0-ADC не потребляет мощности)
//.1.. .... ADSC - 1- Старт. При завершении преобразования сбрасывается аппаратно.
//..1. .... ADFR - 1- режим Непрерывного Преобразования.
//...1 .... ADIF - 1- флаг завершения преобразования
-сброс программно.
-для прерывания очищается аппаратно.
//.... 1... ADIE - 1- Разрешение прерывания
//.... .1.. ADPS2 - предделитель
//.... ..1. ADPS1 - предделитель
//.... ...1 ADPS0 - предделитель

предделитель ADC:
ADPS2 -ADPS1 -ADPS0
----------
// 000: 1 МГц/2=500.000 Hz
// 001: 1 МГц/2=500.000 Hz
// 010: 1 МГц/4=250.000 Hz
// 011: 1 МГц/8=125.000 Hz
// 100: 1 МГц/16=62.500 Hz
// 101: 1 МГц/32=31.250 Hz
// 110: 1 МГц/64=15.625 Hz
// 111: 1 МГц/128=7.812,5 Hz
----------

Выбираем режим работы АЦП...
Частоту преобразования...
Выравнивание результата...
Источник опорного напряжения...
Канал (мультиплексор)...

После пишем программу))

Добавлено after 23 minutes 22 seconds:
Вот сама программа (для mega8):
Прерывание я не использую.
----------
#include <mega8.h>
#include <delay.h>

unsigned int u; // переменная для АЦП

// функция АЦП: -время одного преобразования АЦП = 0,000.070c
void adc(unsigned char adc_input)
{
ADMUX = 0b01000000 | adc_input; // Опорное напряжение АЦП = AVCC // канал АЦП = ADC0...ADC7
delay_us(10); // Стабилизация входа...
ADCSRA|=0b01000000; // Старт преобразования АЦП...
while (ADCSRA & 0b01000000); // Ждём окончания преобразования АЦП...
//При завершении преобразования этот бит сбрасывается аппаратно.
}


// главная функция
void main(void)
{

// Настройка PORTD:
DDRD = 0xFF; // PORTD
PORTD = 0x00; // PORTD

// Настройка АЦП:
ADCSRA=0x84; // вкл. АЦП // Режим одиночного преобразования // Частота преобразования = 4 МГц/16=250.000 Hz


while (1)
{
// запускаем одиночное преобразование АЦП (канал 5):
adc(5); a=ADCW;
// выводим значение АЦП в PORTD
PORTD = a;
// ждём 1 секунду...
delay_ms(1000);
};

}
----------
Светодиоды показывают напряжение на входе АЦП (ножка PC5). Обновление каждую секунду.
Всё))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Чт окт 08, 2020 13:51:40 
Собутыльник Кота
Аватар пользователя

Карма: 14
Рейтинг сообщений: 115
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2957
Откуда: Беларусь
Рейтинг сообщения: 0
roman.com, как будет в коде выглядеть преобразования зашумленнго сигнала?
подаем на вход зашумленный сигнал
на выходе имеем красивые импульсы.

Добавлено after 16 minutes 39 seconds:
Цитата:
Алгоритм для АНАЛОГОВОГО входа МК очень простой - непрерывно измеряем напряжение с помощью АЦП на выходе детектора приёмника относительно среднего значения. Далее тоже самое что и для ЦИФРОВОГО входа МК.
Благодаря АЦП мы можем обрабатывать сигнал прямо с выхода детектора приёмника, без дополнительных усилителей на транзисторах...


я пытаюсь делать хотя бы вот это
Код:
// Крутим резистор
   // В переменной  ADCH оцифрованное значение напряжения на лапке PB4 (adc
   t=ADCH;
   
   if (t>200)
      {
   PORTB|=(1<<PB0);
    }
   else
   {
     PORTB|=(0<<PB0);
      }


но у меня светодиод зажигается при значении 200, но потом не гаснет когда я уменьшаю значение переменным резистором. Что здесь не так?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передатчик FS1000A - как ослабить передачу?
СообщениеДобавлено: Чт окт 08, 2020 15:15:30 
Друг Кота

Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 6884
Откуда: .ru
Рейтинг сообщения: 0
// Крутим резистор
// В переменной ADCH оцифрованное значение напряжения на лапке PB4 (adc
t=ADCH;

if (t>200)
{
PORTB|=(1<<PB0);
}
else
{
PORTB|=(0<<PB0);
}

Что тут не так ? )) Тут всё не так))
1- Где вы берёте такие коды... мой компилятор не понимает запись PORTB|=(1<<PB0); PORTB|=(0<<PB0);
2- Что значит логическая операция "|" ? https://ru.wikipedia.org/wiki/Дизъюнкция
3- Что значит логическая операция "&" ? https://ru.wikipedia.org/wiki/Конъюнкция

Можно записать так:
// Крутим резистор
// В переменной ADCH оцифрованное значение напряжения на лапке PB4 (adc
t=ADCH;

if (t>200)
{
PORTB |= 0b00000001;
}
else
{
PORTB &= 0b11111110;
}

Или так:
// Крутим резистор
// В переменной ADCH оцифрованное значение напряжения на лапке PB4 (adc
t=ADCH;

if (t>200)
{
PORTB = 0b00000001;
}
else
{
PORTB = 0b00000000;
}

Или так:
// Крутим резистор
// В переменной ADCH оцифрованное значение напряжения на лапке PB4 (adc
t=ADCH;

if (t>200)
{
PORTB = 0x01;
}
else
{
PORTB = 0x00;
}

Или проще так:
// Крутим резистор
// В переменной ADCH оцифрованное значение напряжения на лапке PB4 (adc
t=ADCH;

if (t>200)
{
PORTB.0= 1;
}
else
{
PORTB.0= 0;
}

Или по другому)) Вариантов миллион)) Я не знаю как работает Ваш компилятор...

Добавлено after 16 minutes 6 seconds:
В Вашем случае это скорее всего будет так:
// Крутим резистор
// В переменной ADCH оцифрованное значение напряжения на лапке PB4 (adc
t=ADCH;

if (t>200)
{
PORTB|=(1<<PB0);
}
else
{
PORTB&=(0<<PB0);
}

Добавлено after 4 minutes 27 seconds:
olegue писал(а):
как будет в коде выглядеть преобразования зашумленнго сигнала?

это было давно...
https://www.radiokot.ru/forum/viewtopic ... &start=737
в коде будет как-то так))

...
...
mesto_3:
////////////////////////////////////////////////////////////////////////////////////////////////////// RX
////////////////////////////////////////////////////// преамбула:
for (x=0;x<2;x++) {
PORTC.3=1; // контроль
for (w=0;w<234;w++) {
if (PINB.0==1) { // ФНЧ
d++;
};
};
m[x] = d;
d=0;
PORTC.3=0; // контроль
};
//////////////////////////////////////////////////////
if ( ((m[0]-m[1])<30) || ((m[1]-m[0])<30) ) { // допуск +/-
if ( (50 < m[0]) && (m[0] < 150) ) { // вероятность 50%
goto mesto_2;
};
};

goto mesto_3;
//////////////////////////////////////////////////////

mesto_2:
delay_us(300);
////////////////////////////////////////////////////// синхро:
si=0;
b=0;
while (b<4){ // "1" > "1" > "1" > "1" >
si++;
if (si>38) {
PORTC.4=0; // связь
goto mesto_1; // синхро > сброс
};
PORTC.3=1; // контроль
b++;
for (w=0;w<246;w++) { // ФНЧ
if (PINB.0==1) {
d++;
};
};
PORTC.3=1; // контроль
if (d<123) { // вероятность 50%
b=0; // ошибка "1"
};
d=0;
PORTC.3=0; // контроль
}; // "1" > "1" > "1" > "1" >
////////////////////////////////////////////////////// синхро:
b=0;
while (b<4){ // "0" > "0" > "0" > "0" >
si++;
if (si>38) {
PORTC.4=0; // связь
goto mesto_1; // синхро > сброс
};
PORTC.3=1; // контроль
b++;
for (w=0;w<246;w++) { // ФНЧ
if (PINB.0==0) {
d++;
};
};
PORTC.3=1; // контроль
if (d<123) { // вероятность 50%
b=0; // ошибка "0"
};
d=0;
PORTC.3=0; // контроль
}; // "0" > "0" > "0" > "0" >
////////////////////////////////////////////////////// запись:
for (x=0;x<96;x++) {
PORTC.3=1; // контроль
PORTC.3=1; // контроль
PORTC.3=1; // контроль
for (w=0; w<245; w++) {
if (PINB.0==1) { // ФНЧ
d++;
};
};
m[x] = d;
d=0;
PORTC.3=0; // контроль
PORTC.3=0; // контроль
// PORTC.3=0; // контроль
};
////////////////////////////////////////////////////// манчестер 1=|10|, 0=|01|:
for (x=0;x<96;x=x+2) {
w=x+1;
m[x] = ( m[x] > m[w] ) ? 1 : 0; // вероятность 50%
};
////////////////////////////////////////////////////// сборка:
// ........ 11111111 ........ ........ ........ ........
b1=(m[0]<<7)|(m[2]<<6)|(m[4]<<5)|(m[6]<<4)|(m[8]<<3)|(m[10]<<2)|(m[12]<<1)|m[14];
// 11111111 ........ ........ ........ ........ ........
b1=(b1<<8);
// ........ 11111111 ........ ........ ........ ........
b2=(m[16]<<7)|(m[18]<<6)|(m[20]<<5)|(m[22]<<4)|(m[24]<<3)|(m[26]<<2)|(m[28]<<1)|m[30];
// 11111111 11111111 ........ ........ ........ ........
b1^=b2;
// ........ ........ ........ 11111111 ........ ........
b3=(m[32]<<7)|(m[34]<<6)|(m[36]<<5)|(m[38]<<4)|(m[40]<<3)|(m[42]<<2)|(m[44]<<1)|m[46];
// ........ ........ 11111111 ........ ........ ........
b3=(b3<<8);
// ........ ........ ........ 11111111 ........ ........
b4=(m[48]<<7)|(m[50]<<6)|(m[52]<<5)|(m[54]<<4)|(m[56]<<3)|(m[58]<<2)|(m[60]<<1)|m[62];
// ........ ........ 11111111 11111111 ........ ........
b3^=b4;
// ........ ........ ........ ........ ........ 11111111
b5=(m[64]<<7)|(m[66]<<6)|(m[68]<<5)|(m[70]<<4)|(m[72]<<3)|(m[74]<<2)|(m[76]<<1)|m[78];
// ........ ........ ........ ........ 11111111 ........
b5=(b5<<8);
// ........ ........ ........ ........ ........ 11111111
b6=(m[80]<<7)|(m[82]<<6)|(m[84]<<5)|(m[86]<<4)|(m[88]<<3)|(m[90]<<2)|(m[92]<<1)|m[94];
// ........ ........ ........ ........ 11111111 11111111
b5^=b6;
////////////////////////////////////////////////////// crc:
crc=b1; // crc -1 11111111 11111111 ........ ........ ........ ........
bcrc=b3;
fcrc(); // fcrc -2 ........ ........ 11111111 11111111 ........ ........
bcrc=b5;
fcrc(); // fcrc -2 ........ ........ ........ ........ 11111111 11111111
...
...
И т.д. ))
Вложение:
PCM 256-2.rar [858.19 KiB]
Скачиваний: 123

:roll:
Это старый код... Новый код будет другой. Но принцип тот же))


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 37 ]    , 2

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y