NEW
LCD Counter PIC12F1822/PIC12F629
LCD Accurate Counter ATtiny45/85
LCD 1602 Large Characters Timer
SD CARD
20 Tracks Sound Recorder
SD Card Data Logger
FAT32 Player ATtiny85/45
CH376 USB Picture Frame
SD FAT32 Player PIC12F1822
W25Q64 Flash Recorder
SD Picture Frame
SD FAT32 TFT Display
Doorbell with SD/EEPROM
SD Talking Clock
SD FAT32 Sound Player Recorder
SD Arduino Recorder
Arduino Picture Frame
Projects Without Microcontroller
CH341 USB to I2C OLED
CH341 USB to 16x2 LCD
CH341 USB to TFT
CH341 USB Input Output
PC Digital I/O
CH341 Analogue to USB
USB MCP3201 ADC
FREQUENCY COUNTER
LCD Counter ATtiny88
OLED Counter ATtiny85
AD9833 Waveform Generator
Chrome Browser Counter
Arduino LED MAX7219 Counter
LCD Accurate Counter
OLED Accurate Counter
MilliHertz Counter
PIC Counter For Android
MAX7219 LED Counter
WiFi Frequency Counter
Frequency Generator
OLED Counter PIC12F629
Talking Frequency Counter
TFT Counter PIC16F628A
SSD1331 Counter PIC16F628A
Arduino Counter for PC
OLED Arduino Counter
TFT 10MHz Counter
PC Counter
LED Counter
Scope Screen Counter
LCD 16 x 2 Counter
6MHz Android Counter
NIXIE Android Counter
Bluetooth Counters
USB Counter PIC18F2550
OBD2
OBD2 RPM meter PIC16F876A
OBD2 Android Rev Counter
OBD2 Diagnostic App PIC/Arduino
OSCILLOSCOPE
OLED Oscilloscope ATtiny85
Logic Analyzer
PIC12F1822 Scope for PC
Arduino Oscilloscope for PC
Arduino OLED Oscilloscope
Android Oscilloscope
TFT Oscilloscope
USB Oscilloscope PIC18F2550
THERMOMETER
TFT Thermometer ATtiny85
Temperature Controller
Thermocouple 1023 Deg
Thermometer For Browser
OLED Thermometer PIC12F629
OLED Room Thermostat
TFT Clock and Thermometer
LED Thermometer
USB Thermometer
Serial Thermometer
USB DS18B20 Sensor
TIMER / CLOCK
Cuckoo Clock
Real Time Clock DS3231
LED TM1637 Timer
OLED Timer Thermometer
TFT Timer Thermometer
LED Timer
LCD Timer
Talking Clock PIC16F628A
Android Talking Clock
WiFi
WiFi, Ethernet
WiFi Thermometer
WiFi ESP8266
USB
IO for Chrome Browser
USB 16x2 LCD
USB TFT display BMP
USB Meter
USB Input-Output
USB Input-Output Android
MISCELLANEOUS
Musical Doorbell
Talk to Arduino
HC-SR04 Sensor
OLED Amp Meter
Water Softener
Solar Charger
Birthday Song ATtiny13
Music, Birthday Card
Code Lock
RETIRED
Serial Port
LPT Printer Port
SMALL PROJECTS  
List of Projects Technical Tips  

LCD 10MHz AD9833 WAVEFORM GENERATOR AND 16MHz COUNTER

PIC16F1827 controls AD9833 waveform generator and also frequency counter up to 16 MHz. The CPU runs at 32 MHz. The counter measure the frequency for 0.1sec first, if the frequency is greater than 2MHz TMR0 prescaler divides by 2 to increase the input frequency range to 16MHz with resolution of 2Hz, if the frequency below 2MHz TMR0 is set for no prescaling and the measurement is with resolution of 1Hz. Counter is disabled while setting the waveform generator.
AD9833 module is a 0-10Mhz waveform generator with integral 25MHz crystal oscillator, the output frequency is set by the SPI controlled divider of the AD9833. A DAC shapes the sine and triangle waveforms, amplitude is 600mV. Squarewave amplitude is 5V. The PIC drives the AD9833 using SPI. The Frequency in the AD9833 is selected by 28 bit value which gives about 0.1Hz resolution, the PIC limit of LONG numbers allows accuracy of about 0.01%.
Pushbutton WAVEFORM selects between Sine, Triangle (300mV) or Squarewave (5V). Digit pushbutton selects the digit to set, INC pushbutton increments the digit.
The LCD of 16x2 display the High and Low Frequencies. The 16x2 LCD module has to be HD44780 compatible.
AD9833 from eBay: https://www.ebay.co.uk/

gen genoled

line

LCD AND KEYPAD AD9833 WAVEFORM GENERATOR

AD9833 module is a 0-10Mhz waveform generator with integral 25MHz crystal oscillator, the output frequency is set by the SPI controlled divider of the AD9833. A DAC shapes the sine and triangle waveforms, amplitude is 600mV. Squarewave amplitude is 5V. The PIC16F876A drives the AD9833 using SPI. The Frequency in the AD9833 is selected by 28 bit value which gives about 0.1Hz resolution, the PIC limit of LONG numbers allows accuracy of about 0.01%.
Key * selects between Sine, Triangle (300mV) or Squarewave (5V). Key # starts frequency setting by entering 7 numerical keys.
The 16x2 LCD module has to be HD44780 compatible.
After programming the PIC16F876A connect pin 1 (reset) to 5V.
AD9833 from eBay: https://www.ebay.co.uk/

gen genoledkey

line

LCD 10MHz AD9833 WAVEFORM GENERATOR

AD9833 module is a 0-10Mhz waveform generator with integral 25MHz crystal oscillator, the output frequency is set by the SPI controlled divider of the AD9833. A DAC shapes the sine and triangle waveforms, amplitude is 600mV. Squarewave amplitude is 5V. The PIC drives the AD9833 using SPI. The Frequency in the AD9833 is selected by 28 bit value which gives about 0.1Hz resolution, the PIC limit of LONG numbers allows accuracy of about 0.01%. PIC16F628A uses software SPI.
Pushbutton WAVEFORM selects between Sine, Triangle (300mV) or Squarewave (5V). Digit pushbutton selects the digit to set, INC pushbutton increments the digit.
The LCD of 16x2 display the High and Low Frequencies. The 16x2 LCD module has to be HD44780 compatible.
AD9833 from eBay: https://www.ebay.co.uk/

gen genoled

line

ARDUINO LCD AND KEYPAD 10MHz AD9833 WAVEFORM GENERATOR

AD9833 module is a 0-10Mhz waveform generator with integral 25MHz crystal oscillator, the output frequency is set by the SPI controlled divider of the AD9833. A DAC shapes the sine and triangle waveforms, amplitude is 600mV. Squarewave amplitude is 5V. The Arduino drives the AD9833 using SPI. The Frequency in the AD9833 is selected by 28 bit value which gives about 0.1Hz resolution, the Arduino limit of 32 bits numbers allows accuracy of about 0.01%.
Key * selects between Sine, Triangle (300mV) or Squarewave (5V). Key # starts frequency setting by entering 7 numerical keys.
The 16x2 LCD module has to be HD44780 compatible.
AD9833 from eBay: https://www.ebay.co.uk/

gen genoledkey

line

OLED ATtiny84 10MHz AD9833 WAVEFORM GENERATOR

AD9833 module is a 0-10Mhz waveform generator with integral 25MHz crystal oscillator, the output frequency is set by the SPI controlled divider of the AD9833. A DAC shapes the sine and triangle waveforms, amplitude is 600mV. Squarewave amplitude is 5V. The ATtiny84 drives the AD9833 using software SPI MODE2 because the ATtiny84 doesn't have it. The Frequency in the AD9833 is selected by 28 bit value which gives about 0.1Hz resolution, the Arduino limit of 32 bits numbers allows accuracy of about 0.1%.
Pushbutton WAVEFORM selects between Sine, Triangle (600mV) or Squarewave (5V). Digit pushbutton selects the digit to set, INC pushbutton increments the digit.
OLED display 0.91 ïnch 128x32 SSD1306 driver. OLED is driven by I2C that uses lib "tinyI2C" that can be downloaded from GitHub: https://github.com/technoblogy/tiny-i2c/tree/master
ATtiny can be programmed using Arduino IDE and Arduino as ISP, see Technical Tips Burning bootloader with setting "Clock Source 8MHz internal" and Pin Mapping: "Clockwise".
AD9833 from eBay: https://www.ebay.co.uk/

gen genoled

line

ARDUINO LCD 10MHz AD9833 WAVEFORM GENERATOR

AD9833 module is a 0-10Mhz waveform generator with integral 25MHz crystal oscillator, the output frequency is set by the SPI controlled divider of the AD9833. A DAC shapes the sine and triangle waveforms, amplitude is 600mV. Squarewave amplitude is 5V. The Arduino drives the AD9833 using SPI. The Frequency in the AD9833 is selected by 28 bit value which gives about 0.1Hz resolution, the Arduino limit of 32 bits numbers allows accuracy of about 1%.
Pushbutton WAVEFORM selects between Sine, Triangle (300mV) or Squarewave (5V). Digit pushbutton selects the digit to set, INC pushbutton increments the digit.
The 16x2 LCD module has to be HD44780 compatible.
AD9833 from eBay: https://www.ebay.co.uk/

gen genoled

line

PC WAVEFORM GENERATOR AD9833 + COUNTER

PC app for controlling AD9833 waveform generator module. AD9833 module is a 0-12.5Mhz waveform generator with integral 25MHz crystal oscillator, the output frequency is set by the SPI controlled divider of the AD9833. A DAC shapes the sine and triangle waveforms, amplitude is 600mV. Squarewave amplitude is 5V. 16MHz counter is included in the app and PIC code. The counter reading is send to the app every 1.5 seconds.
The PC sends serial 6 bytes via USB to UART converter module, PIC16F628A converts serial UART bytes to SPI that drives the AD9833.
The AD9833 and PIC are powered by the USB 5V.
AD9833 from eBay: https://www.ebay.co.uk/

uart oledoledvbmine

line

PC WAVEFORM GENERATOR AD9833 VIA USB CH341

CH341 module (from eBay) converts USB to SPI, the module links are set to 5V and i2c-spi. AD9833 module is a 0-12.5Mhz waveform generator with integral 25MHz crystal oscillator, the output frequency is set by the SPI controlled divider of the AD9833. A DAC shapes the sine and triangle waveforms, amplitude is 600mV. Squarewave amplitude is 5V.
The 2N7000 mosfet is for digitally inverting the clock (SCK), the AD9833 wants idle high signal. The mosfet can be replaced by any small signal N mosfet or any digital inverter like CMOS 4049.
PC app is in Visual Basic-VS2010, type in the desired frequency.
AD9833 from eBay: https://www.ebay.co.uk/
The VB wrapping of DLL is taken from GitHub https://github.com/aa4e/ch341_vb . DLL is installed to PC by setup.exe in downloaded driver CH341PAR.ZIP https://www.wch.cn/downloads/CH341PAR_ZIP.html

ch oledoledvb

line

LCD 244Hz TO 4MHz PIC16F1827 FREQUENCY GENERATOR

PIC generates 244-8,000,000 Hz by dividing the 32 MHz from crystal oscillator and PLL. The pushbuttons set the division from 0 to 255 holding the button advance the frequency every second.. The high frequency output at pin 2 is 4000000 / division , the low frequency output at pin 3 is 62500 / division. Division is by integer so not all frequencies can be set, for example the High Frequency output can be 4, 2, 1.333, 1 MHz etc.
The LCD of 16x2 display the High and Low Frequencies. The LCD module has to be HD44780 compatible.
The outputs are generated by using TMR2 and CCP3, TMR4 and CCP4 in PWM mode.

gen gen

line

LCD 244Hz TO 8MHz ARDUINO FREQUENCY GENERATOR

Arduino Uno or Nano generates 244-8,000,000 Hz by dividing the 16 MHz crystal oscillator. The pushbuttons set the division from 0 to 255 holding the button advance the frequency every second.. The high frequency output at pin 9 is 8000000 / (division + 1) , the low frequency output at pin 11 is 62500 / (division + 1). Division is by integer so not all frequencies can be set, for example the High Frequency output can be 8, 4, 2.666, 2, 1.6, 1.333 MHz etc.
The LCD of 16x2 display the High and Low Frequencies. The LCD module has to be HD44780 compatible.
The software is for Arduino with ATMEGA328. The outputs are generated by using Timer2 and Timer1 in CTC mode.

gen gen



Write a comment

iconFlag Countermoty22.co.uk  2008-2025