Частотомер

Devil40rus
Offline
Зарегистрирован: 27.03.2014

Ребят, как сделать счетчик импульсов в данной програаме? После расчета КСВ.

  // Подключаем библиотеку дисплея:
#include <LiquidCrystal.h>
  // Подключаем библиотеку шагового двигателя:
#include <Stepper.h>
#include <util/delay.h> 
  // Количество шагов мотора: 
#define STEPS 48 // Шагов на оборот.
  // Подключаем математические функции:
#include "math.h" 
  // Объявляем переменные и приводим их в порядок:
float SWRpad = 0;
float SWRotr = 0;
float SWR = 0;
  // Прописываем пины индикатора:
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);
  // Создает класс шагового двигателя и объявляет какими ножками:
Stepper stepper(STEPS, 8, 9, 10, 11);
  // Второй мотор:
Stepper stepper2(STEPS, 2, 3, 4, 5);

void setup ()
{
analogReference(DEFAULT); // Стандартное опорное напряжение 5 В.

lcd.begin(16, 2); // Задаем размерность экрана, 2 строки по 16 символов.

  // Установление скорости оборотов двигателя в оборотах в минуту (RPM).
stepper.setSpeed(30);
stepper2.setSpeed(30);
}

void loop ()

{
  // Считываем в порт значение частоты:
SWRpad = analogRead(A2);  // Читаем со второй ноги аналогово входа напряжение падающей волны.
SWRotr = analogRead(A1);  // Читаем с первой ноги аналогово входа напряжение отраженной волны.
  // Расчет и вывод КСВ:
SWR = (SWRpad + SWRotr)/(SWRpad - SWRotr);
  // Определяем номер шага и значение КСВ - сравниваем с тем, что запомнили вначале.
  // Если новое значение лучше, то запомнинаем новое и номер шага. После полного оборота выбираем лучшее.
lcd.setCursor(0, 0);
lcd.print(" SWR ");
if (SWR>1) {
lcd.setCursor(4, 0);
lcd.print(">1");} 

else if (SWR > 3) {
  // Один полный круг вперед:
stepper.step(1*STEPS);
stepper2.step(1*STEPS);
delay(1000); // Задержка определяется временем на шаг двигателя.
  // Один полный круг назад:
stepper.step(-1*STEPS);
stepper2.step(-1*STEPS);
delay(1000);
lcd.setCursor(4, 0);
lcd.print(SWR);
}
  // Задержка и очистка экрана:
delay (100);
lcd.clear(); 
}

 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013
ourlive
Offline
Зарегистрирован: 26.05.2012

Интересно, зачем нужно условие 44й строки которое только при неисправных детекторах может быть ложным? А по сути вопроса уже ответили, несколько замеров периода, усреднить и всё.

Devil40rus
Offline
Зарегистрирован: 27.03.2014

Большое спасибо. Я новичок, а что именно нужно прописать? Напишите пожалуйста

Devil40rus
Offline
Зарегистрирован: 27.03.2014

Большое спасибо. Я новичок, а что именно нужно прописать? Напишите пожалуйста

ourlive
Offline
Зарегистрирован: 26.05.2012

По логике вашего кода вас интересует КСВ<=3, если это не так, то начинаете что то там крутить по непонятному алгоритму(вообще что это за регулятор?). Какую частоту при этом хотите мерить не очень понятно, падающей волны?

 
Devil40rus
Offline
Зарегистрирован: 27.03.2014

Да - КСВ<=3, падающей волны. Помогите написать

Devil40rus
Offline
Зарегистрирован: 27.03.2014

автоматическое антенное согласующее устройство

ourlive
Offline
Зарегистрирован: 26.05.2012

Начнём с начала, что по вашему необходимо сделать, чтобы измерить частоту переменного сигнала?

Клапауций
Offline
Зарегистрирован: 10.02.2013

ourlive пишет:

Начнём с начала, что по вашему необходимо сделать, чтобы измерить частоту переменного сигнала?

он новичёк...

ourlive
Offline
Зарегистрирован: 26.05.2012

Клапауций пишет:

он новичёк...

Новичёк строящий согласующие устройства ВЧ тракта? Хм..

Devil40rus
Offline
Зарегистрирован: 27.03.2014

алгоритм: измеряяем КСВ, если КСВ < 1.3, то отображаем. Если КСВ>1.3, то делаем полный шаг, счетчик, отображаем

Клапауций
Offline
Зарегистрирован: 10.02.2013

ourlive пишет:

Новичёк строящий согласующие устройства ВЧ тракта? Хм..

нет повода подозревать во лжи - сказал, "новичог" - значит, так и есть.

Devil40rus
Offline
Зарегистрирован: 27.03.2014
счетчик: нужно определить номер шага и значение КСВ - сравнивить с тем, что запомнили вначале. Если новое значение лучше, то запомнинаем новое и номер шага. После полного оборота выбираем лучшее.
ourlive
Offline
Зарегистрирован: 26.05.2012

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

Ваши ответвители наверняка с детектирующими элементами (диод с кондёром и возможно резюком нагрузки). Через такой детектор ну никак частоту нельзя измерить.

4x6hp
Offline
Зарегистрирован: 06.05.2014

Может выход после делителя 74HCT4040 для измерения частоты? Автор, что за разработка? Тюнер для трансивера или усилителя? Степером крутить кондер и катушку?

4x6hp
Offline
Зарегистрирован: 06.05.2014

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