跳到主要內容

製作 k-shoot mania 旋鈕問題


相關連接~
kshootmania旋鈕 自製成功!
kshootmania 旋鈕 可變電阻製作詳細說明 

來源:http://www.nicovideo.jp/watch/sm20783694

買了旋轉編碼器因為不是光柵的手感非常不好...
決定還是用小馬達來做

就如上圖電路那樣那樣,成果不錯。(我IC用LM393,圖為LM358)
我把兩個47歐姆條小增加靈敏度


1.
不過....我在做第二個旋鈕時。

同樣的電路......同樣IC只是不同顆...結果不一樣....
在我一天的測試下發現第2.5接腳有補償小正電壓(推測)
因為馬達旋轉改變的電壓很小(慢慢轉連5mV 都不到)
電阻分壓出小電壓當作比較來源
而補償的小正電壓比分壓的來源還大
用上圖來表達就是比較器比較時馬達端的電壓(接腳二)會比靠近正電的47歐姆(接腳三)還大

解決辦法把上半段47歐姆條大拉開壓差

2.
然而上半段調整好靈敏度
調整下半段47歐姆...恩都把47歐姆拔了
怎還不靈敏.....這可恨的補償電壓...

最後電路變成這樣...

接腳六在奇怪的位子上了WW
接腳五電壓還比接腳六大...


建議先調5.1歐姆在調3.9歐姆


也可以用好幾條分壓當作輸入來源
靈敏度用可變電阻條

3.
本來想靠程式來作旋鈕
可是ATMEGA328 類比精確度10bit
5/1024=0.0048828125v
馬達旋轉的電壓比這個還小....
除非你快轉.....
不然就加OPA放大
好處是不用調整外部電路條靈敏
改程式就OK

原本想法:
馬達未轉時2.5V
旋轉時在2.5V上下移動

精確度不夠讀不到小數點後幾位的數字....
而且雜訊超多~~~

留言

這個網誌中的熱門文章

小蟻智慧攝影機支援RTSP

來源: http://en.miui.com/thread-196713-1-1.html 小蟻智慧攝影機版本: 1.8.5.1l_201511061661(台灣版) 下載檔案 https://drive.google.com/file/d/0ByjBix7wpeJJY0ZWZXlvWl9Za1E/view?usp=sharing 把攝影機SD卡拿讀卡機讀取 把壓縮檔內的test資料夾放進SD根目錄 插回SD卡至攝影機 重開 攝影機會呈現橘燈並執行更新 等恢復至藍燈或是用app確認攝影機開啟 用VLC或相關程式讀取串流 Main stream:rtsp:// <CameraIP> :554/ch0_0.h264 Minor stream:rtsp:// <CameraIP> :554/ch0_1.h264 Audio stream:rtsp:// <CameraIP> :554/ch0_3.h264 Telnet與FTP開啟加上 # Telnet if [ ! -f "/etc/init.d/S88telnet" ]; then     echo "#!/bin/sh" > /etc/init.d/S88telnet     echo "telnetd &" >> /etc/init.d/S88telnet     chmod 755 /etc/init.d/S88telnet fi # FTP echo "#!/bin/sh" > /etc/init.d/S89ftp echo "tcpsvd -vE 0.0.0.0 21 ftpd -w / &" >> /etc/init.d/S89ftp chmod 755 /etc/init.d/S89ftp User:  root Password:  1234qwer 使用passwd改密碼 參考: http://en.miui.com/thread-224653-1-1.html

Arduino 滑鼠滾輪編碼器/旋轉編碼器

滑鼠拆下來的滾輪編碼器 時序為                      → CW A  -----------          -------------    HIGH                ----------                  LOW                      ← CCW B  --------          ----------------    HIGH             ----------                     LOW A B 1  1↓CW 1  0 0  0 0  1 1  1 1  0 0  0 0  1↑CCW 程式碼參考底下網址來源修改而來 #define ENCODER_A_PIN 2 #define ENCODER_B_PIN 3 unsigned long time = 0; long position = 0; long num = 0; void setup() { pinMode(ENCODER_A_PIN,INPUT); pinMode(ENCODER_B_PIN,INPUT); attachInterrupt(0, RotaryEncoder, LOW); Serial.begin(9600); time = millis(); } void loop() { while (num != position) { num = position; Serial.println(num); } } void RotaryEncoder(){ int temp =digitalRead(ENCODER_B_PIN); if ((millis() - time) > 3) { if ( temp == LOW) { position++; }else{ if ( temp == HIGH) position--; } } time = millis(); } 沒中斷版本 int trigger=0; void Rotar

V-USB Joystick for Arduino

上次做好沒存檔 這次再翻出來從弄一次...QAQ 花了我一天阿阿阿阿 D+ 接腳2 D-  接腳3 詳情請看usbconfig.h 想改搖桿配置可以用 HID Descriptor Tool 改完記得回usbconfig.h填 USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 長度 程式碼: https://www.dropbox.com/s/n0rgkb370wto2lv/UsbJOY.rar?dl=0