Система поиска и стабилизации резонансной частоты
- Войдите на сайт для отправки комментариев
Всем привет. Если уже есть где то подобная тема на форуме, ткните пальцем. Авто предлагает схему генератора прямоугольных импульсов на ард.2560 на сколько я понял. Автоматическая система сканирования частотного диапазона от 1 до 15кГц с фиксацией на резонансной частоте, там где напряжение по амплитуде привышает ток. И код имеется, как бы этого проэкта, но чето не копмилируется для проверки в протеусе. Вот видео проекта, кому интересно. https://www.youtube.com/watch?v=T-RgYB0-KQo https://www.youtube.com/watch?v=J593-dbg6x8&t=26s https://www.youtube.com/watch?v=mcrKzG7HioM https://www.youtube.com/watch?v=PVMJj66GvWI&t=170s https://www.youtube.com/watch?v=ZGxcDtJ36AY&t=561s https://www.youtube.com/watch?v=Oysg8RPgW88
#include LiquidCrystal lcd(2, 3, 4, 5, 6, 7); int hz = 500; int freq = 0; int volt = 0; int vmax = 0; int intval = 0; void setup() { lcd.begin(16, 2); lcd.print("VIC Scan Circuit"); lcd.setCursor(0,1); lcd.print("ver. 0.1.0alpha"); delay(5000); //Serial.begin(9600); pinMode(9, OUTPUT); //pin that tones will be sent from pinMode(A0, INPUT); //voltage reading pin pinMode(8, INPUT); //button pin } void loop() { vmax = 0; //comment if you want to keep the best frequency of all scans intval = 0; //comment if you want to see the frequency found intervals added from all scans lcd.clear(); lcd.print(" Scanning... "); lcd.setCursor(11,1); lcd.print("Hz"); for (hz=1000; hz<=15000; hz=hz+10) //start from 1khz to 15khz to oscillate the circuit { tone(9,hz); //will send a tone at first delay(1); //wait for a millisecond volt = analogRead(A0); //then read the voltage if (vmax < volt) //if there is a resonant point, voltage should have the highest value on this frequency { vmax = volt; freq = hz; //remember that frequency intval = intval++; //times found a nice frequency interval during search lcd.setCursor(0,1); lcd.print(intval); } lcd.setCursor(5,1); lcd.print(hz); } for (hz=15000; hz>=1000; hz=hz-10) //do a descent scan { tone(9,hz); volt = analogRead(A0); delay(1); if (vmax < volt) { vmax = volt; freq = hz; intval = intval++ ; lcd.setCursor(0,1); lcd.print(intval); } if (hz < 10000) { lcd.setCursor(9,1); lcd.print(" "); } lcd.setCursor(5,1); lcd.print(hz); } tone(9,freq); //output the frequency found with higher voltage reading lcd.clear(); lcd.print("Resonance found"); lcd.setCursor(4, 1); lcd.print("@"); lcd.setCursor(6, 1); lcd.print(freq); lcd.setCursor(12, 1); lcd.print("Hz"); delay(3500); lcd.clear(); lcd.print("Vres = v"); lcd.setCursor(7,0); lcd.print(volt); lcd.setCursor(0,1); lcd.print("Fres = Hz"); lcd.setCursor(7,1); lcd.print(freq); //Serial.println(vmax); //Serial.println(freq); // delay(15000) //wait for 15 seconds for the next scan. This can be set to whatever you like while (digitalRead(8) == LOW) //or wait for button to be pressed to start the new scan { volt = analogRead(A0); lcd.setCursor(7,0); lcd.print(" "); lcd.setCursor(7,0); lcd.print(volt); delay(100); } }
Судя по скетчу - говнокод какого-то чайника.
Есть хороший, обкатанный прибор для измерения частотных характеристик, называется NWT-7 . Полоса от 0 до 70МГц, можно тестировать кварцы, катушки, фильтры, снимать АЧХ усилителей. Софт удобный, рисует графики, итд. Описание. Его можно собрать самому, все детали доступны. Так-же продают наборы для сборки. Гугло-яндекс расскажет подробности про схему софт итп. Хорошая, добротная вещь, сам бы сделал себе, но не нужен .. )