Nghiên cứu Khoa học

Hướng dẫn tự làm Máy hiện sóng điện tử trên nền ARDUINO

  • 10/04/2024
  • Nghiên cứu Khoa học

Hướng dẫn tự làm Máy hiện sóng điện tử trên nền ARDUINO

Chuẩn bị

 

Ráp mạch

undefined

Sơ đồ nối với lcd.

undefined

Giới thiệu firmware

Sau khi nối mạch và nạp code arduino thành công. Xin chúc mừng, bạn đã trong tay một máy đo OSILLO thực sự.

Chú ý: Ở lần cài đặt đầu tiên, chương trình hỏi “ Continue with old data ?” –Bạn có muốn dùng các đặt cũ không.  Chọn “No". Rồi nhấn “OK” ( Vì chúng ta chưa có dữ liệu nào trên bộ nhớ EEPROM).

 Ở các lần tiếp theo, bạn có thể chọn “Yes” để tiếp tục với các cài đặt ưa thích của mình.

Tính năng Frequency

  • Chương trình đo tần số của xung đặt lên chân port PD5  (pin 5).
  • Điện áp đặt max (Max vol) : 0v -> 5v.
  • Tần số đo (Frequency): 0hz -> 20mhz. (còn tùy vào tốc độ chuyển mạch của ngắt, có thể lên đến 40mhz).
  • Công tắc (Switch): ở chế độ thường bên Phải (Normal – to the Right).

Test:

Code test phát xung tần số ra các pin (~3,~5,~6,~9,~11). Trên arduino promini.

  1. void setup()
  2. {
  3. TCCR1A =0;
  4. TCCR1B =0;
  5. // RESET lại 2 thanh ghi
  6. DDRB |=(1<< PB1);
  7. // Đầu ra PB1 là OUTPUT ( pin 9)
  8. TCCR1A |=(1<< WGM11);
  9. TCCR1B |=(1<< WGM12)|(1<< WGM13);
  10. // chọn Fast PWM, chế độ chọn TOP_value tự do ICR1
  11. TCCR1A |=(1<< COM1A1);
  12. // So sánh thường( none-inverting)
  13. ICR1 =1;
  14. // xung răng cưa tràn sau 1 P_clock
  15. OCR1A =0;
  16. // xuất mọi lúc
  17. TCCR1B |=(1<< CS10);
  18. // F_clock=16mhz, P_clock=16/1=16mhz.
  19. //F_pwm=16mhz/(ICR1+1)=8mhz
  20. pinMode(3, OUTPUT);
  21. pinMode(5, OUTPUT);
  22. pinMode(6, OUTPUT);
  23. pinMode(11, OUTPUT);
  24. analogWrite(3,25);// 25/256=10%
  25. analogWrite(5,128);//128/256=50%
  26. analogWrite(6,64);// 64/256=25%
  27. analogWrite(11,192);// 192/256=75%
  28. }
  29. void loop()
  30. {
  31. }

Đo mô phỏng trên PROTEIN

undefined

Tính năng DIGITAL CAPTRUE (CAPTURE AND RECORD)

Sử dụng chức năng digitalRead để đọc liên tục giá trị của xung vào (HIGH/LOW).  Chương trình sẽ đợi (Watting..) cho đến khi có tín hiệu xung cao thì mới bắt đầu lấy mẫu.

Mỗi lần lấy mẫu cách nhau một khoảng thời gian DELAY (Có giá trị trong khoảng 0us - > 10000000 us  (0us -> 10s)). Dữ liệu lấy mẫu gọi là Samples, bạn có thể tăng giá trị của Samples để lấy được nhiều mẫu hơn (Samples max = 1000, tương đương 1000 bytes RAM !).

  • Điện áp đặt max (Max vol) : 0v -> 5v.
  • Tần số đo (Frequency): 0hz -> 20khz.
  • Công tắc (Switch): ): ở chế độ thường bên Phải (Normal – to the Right).
  • undefined

Tính năng PULSE WIDTH

Tìm độ rộng của xung.

  •  Điện áp đặt max (INPUT Max vol) : 0v -> 5v.
  • Tần số đo (Frequency): 0hz -> 1mhz.
  • Công tắc (Switch): ): ở chế độ thường bên Phải (Normal – to the Right).

Tính năng Oscilloscope

Máy đo tín hiệu dạng bất kì.

Mỗi lần lấy mẫu cách nhau một khoảng thời gian DELAY (Có giá trị trong khoảng 0us - > 10000000 us  (0us -> 10s)).

Nếu không biết tần số của dao động là bao nhiêu, bạn có thể chọn AUTO DELAY, chương trình này sẽ giúp bạn tìm DELAY tự động.

Gạt công tắc (switch): ): ở chế độ OSCILLOSCOPE bên TRÁI (to the LEFT).

Điện áp đặt max (INPUT Max vol) : 0v => 5v.

Sử dụng biến trở để đặt giá trị điện áp so sánh với giá trị đầu vào.

  • Nếu Urv < Input : Xung ra OA = 1.  Arduino bắt đầu lấy mẫu analog.
  • Nếu Urv >= input : Xung ra OA= 0. Arduino không lấy mẫu.

Do đó:  Input min < Urv  < Input max. 

undefined

Tính năng Realtime analog

Vẽ đồ thị theo thời gian thực (each 1 second).

  • Điện áp đặt max (INPUT Max vol) : 0v -> 5v.
  • Công tắc (Switch): ): ở chế độ thường bên Phải (Normal – to the Right).

Tính năng Setting

Save data

Lưu TẤT CẢ các cài đặt vào thẻ nhớ EEPROM trên arduino.

Contrast

Cài đặt độ tương phản của màn hình.

Negative

HIển thị âm bản.

Tone

Bật tắt loa.

Reset

Đặt lại tất cả các cài đặt về trạng thái mặc định. (Không bao gồm dữ liệu đã lưu trên EEPROM).

 

Các tin khác