[問題] Arduino輸出值到Processing如何辨別A0及A1,2,3

看板ask作者 (可黏阿)時間3年前 (2020/11/18 17:54), 3年前編輯推噓0(006)
留言6則, 1人參與, 3年前最新討論串1/2 (看更多)
不好意思再請教各位一個問題 我已經可以使用一個可變電阻傳到Arduino的A0 再將值傳到Processing上做出一個簡單動畫: 電阻越大螢幕就有一個方塊跟著變大 但如果我想要一次使用兩個以上的可變電阻(分別接在A0跟A1...brabra 然後用兩個以上的方塊去呈現 總共要做十個 這件事情容易做到嗎?.... 各位大神有辦法幾句話指點我條明路我在找找網路資料嗎 因為我一個不懂codeing的人下了一些關鍵字,找了一些才發現都不是我要的東西 我本身不會寫code,剛剛一個可變電阻出一個動畫我是網路資料讀一讀硬幹出來的 先謝謝大家了 ※ 引述《SHANDer (可黏阿)》之銘言: : 結果我自己解決了 : 原來是delay time造成的 : Arduino丟數字比較快,造成Processing print來不及 : 所以讓Arduino增加delay time就成功了 : ============= : 感謝tntchn大神 : 推薦了Processing給我這個非資訊領域的人使用 : 總算是將Arduino跟Processing連結起來了 : 而且非常幸運的是網路上就有一個跟我的case很相近的範本可以套用 : http://coopermaa2nd.blogspot.com/2011/03/processing-arduino.html : 但我遇到一個問題 : 就是我分別開啟Arduino跟Processing了 : (COM檢查過是同一個/通訊速率都是設定9600) : 然後在Arduino println的時候確認過是正常的(0~255) : 我的電阻在Arduino輸出是50的話 : 開啟process的時候 Print出來的數值也是50 : 但因為我是可變電阻,當我在量測過程中變動可變電阻 : Arduino會跟著我變動 : 但Processing就僅僅維持相同的數值(但會擺盪...) : 當我在Adruino裡面將數值修改成100(value*2) : Processing是會跟著變成100,但就是不願意隨著我的壓力改變而改變數值 : 有沒有人可以幫我順利RUN出結果呢? : 這部分我應該去哪個版問呢? : 還是有人能夠幫助一下小弟呢? : 感謝 : =============================== : Arduino : =============================== : void setup() : { : Serial.begin( 9600 ); : } : void loop() : { : int value = analogRead( A0 ); : Serial.write(value/4); : delay(0); : } : =============================== : Processing : =============================== : /* Processing 範例: : * 讀取從 Serial Port 傳進來的 Sensor 讀值 : * 利用 Sensor 讀值移動矩形 (Rectangle) : */ : import processing.serial.*; : Serial serial; : int sensorValue; : void setup() { : // 設定畫布大小為 305 x 200 : size(610, 400); : // 開啟 Serial port,通訊速率為 9600 bps : // 注意! 如果你 Arduino 不是接在 COM4,請做適當調整 : serial = new Serial(this, "COM6", 9600); : } : void draw() { : if ( serial.available() > 0) { : // 讀取從 Serial Port 傳進來的 Sensor 讀值 : sensorValue = serial.read(); : println(sensorValue); : // 在 (x, y) 為 (sensorValue, 80) 的位置畫一個 50x50 的矩形 : background(255); // 白色背景 : fill(255,0,0); // 填滿顏色為紅色 : rect(sensorValue, 80, 50, 50); : } : } : ※ 引述《SHANDer (可黏阿)》之銘言: : : 廣大的臥虎藏龍的版友大家好 : : 小弟手上有一個壓了電阻值就會起變化的偵測器(壓越大力電阻越小) : : 電阻值的測量是 : : 將這塊張測器接在Arduino的板子上 : : 然後輸出電阻值 : : 問題來了 : : 我們想要將這件事情展現給一般的民眾看 : : 所以想以在電腦上動畫的方式呈現 : : 好比壓越大力的時候電腦螢幕就閃紅燈 : : 放開的時候就亮綠燈 : : 最好是一~兩天的初階電腦Flash自習我就能解決這件事情呢? : : 或是我該去哪邊發問才會得到想要的答案呢? : : 先感謝回答的大神了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.20.74 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/ask/M.1605693244.A.51F.html

11/18 19:00, 3年前 , 1F
對 Processing 不熟 不過給你兩個思路 傳送的訊息可以用
11/18 19:00, 1F

11/18 19:01, 3年前 , 2F
字串分割 或是數值相乘 例如你的A0 A1 讀取的數值在0~10
11/18 19:01, 2F

11/18 19:02, 3年前 , 3F
00 之間 例如 30 50 那你arduino 傳送的值 可以是 30,50
11/18 19:02, 3F

11/18 19:03, 3年前 , 4F
或是300050 在Processing 接收後做字串處理或是數值處理
11/18 19:03, 4F

11/18 19:04, 3年前 , 5F
字串處理就是 以,分割成兩個字串 數值處理就是商除和餘
11/18 19:04, 5F

11/18 19:05, 3年前 , 6F
除 除10000 取得商30 餘50 分別把30 50 存入兩個變數
11/18 19:05, 6F
非常感謝你的方法!! 僅以一點微薄批幣聊表心意 但我自己測試之後遇到兩個問題 1.最大的問題是Processing讀值似乎必須小於255(Arduino則是1024) 2.另外一個問題是其實我是要做十個方塊啦...按照你的方法我其實刻意將 A0跟A1轉成0~9(單一電阻變化有九段顯示)然後將A0*10+A1輸出到Processing上 於是我可以藉由00~99成功讓兩個可變電阻可以粗略的讓螢幕上的兩個方塊動作 算是有達到兩個方塊的目標 但假如要在往上加就失敗了QQ ※ 編輯: SHANDer (140.113.20.74 臺灣), 11/19/2020 16:48:00
文章代碼(AID): #1VjEyyKV (ask)
文章代碼(AID): #1VjEyyKV (ask)