一般:
- Arduino簡介,概略介紹。
- Arduino Uno開箱文與安裝設定,軟硬體的安裝與設定,在Windows XP與Mac OS X上。
- Arduino Leonardo的安裝設定(過時開箱文),軟硬體的安裝與設定,在Windows XP上。
- Arduino:Leonardo與Uno的差異比較,內在總是比外在還有層次。
- Arduino與AVR微控制器相關詞彙,簡單介紹一些與Arduino與AVR有關的詞彙。
- Arduino Sketch基本架構與序列埠輸出,講解Arduino程式碼(sketch)的基本結構,並且將Hello World透過序列埠輸出到電腦上。
- Arduino軟體開發環境的設定檔preferences.txt,說明各種設定值的意義。
- Arduino:為IDE換套顏色配置吧,換套酷一點的佈景主題。
- Arduino:stk500_getsync(): not in sync,很常見的燒錄失敗錯誤訊息。
- Arduino一個好用的計時器程式庫,Dr. Monk寫的計時器程式庫。
- Arduino撰寫自己的程式庫,簡單介紹如何把功能包起來放進Arduino程式庫裡,不介紹C++。
- Arduino IDE 1.5:程式庫規格書,Arduino 1.5.x版制定的程式庫格式。
- Arduino:關於記憶體之二三事,介紹各種記憶體Flash、SRAM、EEPROM的用途。
- 在Raspberry Pi上開發Arduino,在Raspberry Pi上安裝Arduino軟體開發環境。
- Arduino IDE 1.5字串翻譯工作需要您的幫忙,大家一起來幫忙吧。
- Arduino:9V電池扣+開關+2.1mm DC電源插頭。
- 試用Arduino.org的Arduino Studio 0.0.1版,Arduino鬧分家,嘗鮮試用Arduino Studio。
- 【作品分享】德霖李老師之水舞鋼琴,李老師的作品,不是我的。
- LED Goggle,照著Adafruit精美的步驟指引,打造動感十足的絢麗LED炫目鏡〈沒有護目功能〉。
- Adafruit穿戴式電子開發平台FLORA,簡單介紹一下Adafruit的產品FLORA。
- 簡介Adafruit的Gemma與Trinket,使用ATtiny85的迷你開發板。
- 123Duino:開箱介紹,玩玩123Duino的試用品,這塊板子內建OLED、溫溼度感測器、RGB LED、蜂鳴器、加速度與多軸感測器、光敏電阻、兩個按鈕。
- 開箱文:Arduino原型擴充板Adafruit Proto Shield for Arduino Kit。
- Arduino擴充板:Adafruit的2.8吋觸控式TFT螢幕擴充板,簡短的開箱試用文。
- Arduino小知識:int為2 bytes。
- Arduino小知識:enum與函式,函式以enum為參數,或回傳型別為enum,會有問題。
- Arduino小知識:LED串聯電阻為什麼是220 ohm?,顧名思義。
- Arduino小知識:須在主草稿碼檔案裡#include全部所需的程式庫標頭檔,這點跟一般的整合式軟體開發環境不太一樣。
- Arduino小知識:error: 'TKD2' was not declared,1.5.5-r2加入的程式庫RobotIRremote會與IRremote起衝突。
- Arduino小冷門知識:char不一定是-128到127,嗯,我第一次遇見,C語言暗處真多啊。
- Arduino練習:以開關切換LED明滅狀態,以開關點亮、熄滅LED,並且解決bounce問題。
- Arduino練習:以開關切換LED是否閃爍,沒有太多說明,示範兩種技巧達成想要的功能,一種不使用delay只使用millis,一種使用現成的程式庫,。
- Arduino練習:呼吸燈,以PWM讓LED漸亮漸暗,顯現呼吸效果,類似於蘋果電腦的電源指示燈;以可變電阻控制呼吸循環週期的時間長短。
- Arduino練習:光敏電阻, 以光敏電阻控制LED的明滅。
- Arduino練習:RGB LED,可發出各種顏色光芒的RGB LED。
- Arduino練習:loudspeaker揚聲器,利用小小的蜂鳴器,演奏周杰倫的青花瓷。
- Arduino練習:使用tone()播放RTTTL,播放鈴聲格式RTTTL。
- Arduino練習:霹靂車燈,以16個LED,製作霹靂車燈來回跑的效果,以兩顆74HC595控制16個LED。
- Arduino練習:seven-segment display七段顯示器與時鐘,以四個七段顯示器,四個4511,製作具有小時與分鐘的時鐘。
- Arduino練習:四合一的七段顯示器,四合一型的七段顯示器,讓它從0000開始計數,0001、0002、0003、依此類推。
- Arduino練習:以LiquidCrystal程式庫控制LCD(相容於Hitachi HD44780),顧名思義,以程式庫LiquidCrystal,在2x16 LCD上顯示文字訊息。
- Arduino練習:Simon Says請你跟我這樣做,一個小遊戲,有四個LED、四個按鈕,程式會亂數閃爍LED,你要記住順序,然後依序按下按鈕。
- Arduino練習:猜猜哪一個,讓使用者從5個開關中,猜猜哪個才是正確的。
- Arduino練習:溫度感測DS18B20,使用OneWire與DallasTemperature程式庫,輕鬆讀取溫度感測器DS18B20。
- Arduino練習:RTC即時時鐘DS1307,由鋰電池供應DS1307的電力,在Arduino板子沒電源不運作時,仍然保持正確的時間日期。
- Arduino練習:RTC即時時鐘PCF8523,Adafruit的PCF8523模組產品。
- Arduino練習:電容式麥克風與運算放大器LM358,以運算放大器放大麥克風的訓輸出訊號。
- Arduino練習:紅外線傳送與接收,練習使用紅外線發射器(IR LED)與接收器(感測器IC)。
- Arduino練習:伺服馬達以Tower Pro SG90為例,簡介伺服馬達,以便宜的Tower Pro SG90為範例。
- Arduino練習:連續旋轉伺服馬達GWS S35,可控制旋轉速度。
- Arduino練習:霍爾效應感測器,單磁極感測器Melexis US5881LUA。
- Arduino練習:傾斜感測器Tilt ball switch,很簡單的傾斜感測器。
- Arduino練習:壓力感測器(Force-Sensitive Resistor),根據施加的力量(擠壓、重量),FSR的電阻會隨之改變,藉以控制LED的亮度。
- Arduino練習:彎曲感測器(flex/bend sensor),越折越彎,電阻值就越大。
- Arduino練習:明度感測器TSL2561,精準地量測光線明度。
- Arduino練習:三軸加速度感測器ADXL335,可量測正負3g,算是一般。
- Arduino練習:旋轉編碼器,機械式、增量型旋轉編碼器模組。
- Arduino練習:二軸加速計Mx2125,很簡略。
- Arduino練習:三軸陀螺儀L3G4200D,很簡略。
- Arduino練習:打字小遊戲,使用矩陣鍵盤和文字型LCD,LCD會不斷冒出數字(與其他),必須趕緊按矩陣鍵盤的鍵消去,按得越快分數越高。
- Arduino在Windows的Cygwin命令列模式下進行編譯與上傳,顧名思義。
- Compile and Upload Arduino sketches under Windows and Cygwin,as the name says。
- 將Arduino Uno當做一台ISP線上燒錄器,燒錄sketch到麵包板上的ATtiny85-20PU晶片。
- 將Arduino Uno當做一台ISP線上燒錄器,燒錄bootloader或sketch到麵包板上的ATmega328P-PU晶片。
- 在麵包板上建構Arduino,ATmega微控制器晶片加USB轉TTL Serial,就可以算是Arduino了。
- 自己以ATtiny85建構Adafruit Trinket,在洞洞板上以ATtiny85建構相容於Adafruit Trinket 5V的Arduino。
- Arduino:自製並列埠燒錄線,自己製作便宜的燒錄線。
- 開箱文:AVR ISP燒錄器Adafruit USBtinyISP,購買套件自己焊接組裝。
- 讓Arduino Uno變成USB鍵盤,燒錄新韌體,變成USB鍵盤,傳送按鍵給電腦。
- Arduino藍牙無線燒錄:使用Adafruit公司的Bluefruit EZ-Link,經由藍牙無線燒錄草稿碼。
- Arduino:自訂整組資料讀寫EEPROM,使用C++的template,直接傳入一個結構作為存取EEPROM的單位。
- Arduino:在Windows裡使用Python語言經由Firmata協定控制Arduino開發板,簡略介紹Firmata,僅是簡單試用而已。
- Arduino Yún:基本介紹與設定Wi-Fi無線網路組態,設定WiFi組態,無線進行燒錄。
- Arduino Yún:更新OpenWrt-Yun映像檔,更新韌體。
- Arduino Yún:範例草稿碼YunSerialTerminal與套件管理指令opkg,從電腦端以終端機介面存取Yun的Linux系統,安裝新套件。
- Arduino Yún:Bridge程式庫入門之Console,初步使用Bridge程式庫的Console。
- Arduino Yún:Bridge程式庫入門之Process,初步使用Bridge程式庫的Process。
- Arduino Yún:Bridge程式庫入門之Bridge類別的put與get方法,顧名思義。
- Arduino Yún:Bridge程式庫入門之Mailbox,初步使用Bridge程式庫的Mailbox。
- Arduino Yún:Bridge程式庫入門之FileIO,初步使用Bridge程式庫的FileIO。
- Arduino Yún:範例草稿碼Bridge、從瀏覽器操控腳位,從其他台電腦的瀏覽器,控制Yún的腳位(設定模式、讀取、輸出)。
- Arduino Yún:基本設定與無線燒錄,設定WiFi組態,無線進行燒錄。
- Arduino Yún:更新Linino映像檔,更新Linino(Linux發行套件)。
- Arduino Yún:Bridge程式庫入門(Console與Process),初步使用Bridge程式庫的Console與Process這兩個類別。
- Arduino Yún:Bridge程式庫入門(使用Process執行命令列模式下的指令),介紹同步與非同步兩種執行方式。
- Arduino Yún:Bridge程式庫入門(Bridge類別的put與get方法),顧名思義,試試看玩一玩。
- Arduino Yún:Bridge程式庫入門(FileIO類別),把資料(日期時間與腳位狀態)存放在檔案裡,檔案可位於micro SD卡或Linux端本身的Flash快閃記憶體。
- Arduino Yún:Bridge程式庫入門(YunServer與YunClient),從其他台電腦的瀏覽器,控制Yún的腳位(設定模式、讀取、輸出)。
- 新書發表:Arduino輕鬆入門:範例分析與實作設計,拙作,我寫的Arduino入門書。。
- 超棒Arduino入門書:超圖解Arduino互動設計入門,圖文並茂,繪圖精美,從最基本開始介紹。
- [廣告] Arduino機器人製作聖經(Arduino Robot Bonanza),這本書以Arduino微控制器開發板為中心,打造各種機器人,包括自走車、尋跡車、機器手臂、在地上扭來扭去的蛇機 、承載樂隊的履帶坦克、等等。
- [廣告] 初探 NFC:近距離無線通訊與Arduino、Android 和 PhoneGap (Beginning NFC: Near Field Communication with Arduino, Android, and PhoneGap),介紹NFC的絕佳入門書,範例超棒,內容包含Android、PhoneGap、Arduino、Raspberry Pi、BeagleBone、Node.js。
- 【翻譯新作】 Arduino物聯網專案實作(Internet of Things with Arduino Blueprints),Arduino與物聯網,電源開關、Wi-Fi訊號強度、智慧型水表、動作偵測與監視攝影機、太陽能面板電壓記錄、GPS位置追蹤、推文控制燈光、紅外線。
- 【翻譯新作】Arduino穿戴式裝置專案製作(Arduino Wearable Projects ),自行車手套、LED眼鏡、GPS手錶、無鑰門鎖、NFC標籤、健身資訊追蹤裝置、Spark開發板、智慧型手錶。
- 【翻譯新作】 iPhone & iPad電子專案製作|透過techBasic開發Arduino、感測器與藍牙應用(Building iPhone and iPad Electronic Projects ),主要以iOS平台與techBasic語言為主,但也有運用Arduino。
你好 我是最近才學此程式的學生 有些問題想請叫 是否能聯絡方是聊聊
ReplyDelete有問題就直接問吧,我盡量回答。
ReplyDelete聯絡方式不方便給你。
你可以波在網路上的什麼論壇嗎,然後給我網址,或是直接留言。
我打算做一個小程式
ReplyDelete多個開關
然後每次隨機設定不同的開關為特定條件
簡單的來說
就像戳戳樂
每次放大獎得位置不一樣
戳到就中獎
我的想法適用 randim跟swiTch來做
int inpin1=2;
int inpin2=3;
int inpin3=4;
int inpin4=5;
int inpin5=6;
int inpin6=7;
int led=8;
int val=0;
void setup() {
pinMode(inpin1, INPUT);
pinMode(inpin2, INPUT);
pinMode(inpin3, INPUT);
pinMode(inpin4, INPUT);
pinMode(inpin5, INPUT);
pinMode(inpin6, INPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop() {
long randnum = random(1, 7);
switch (randnum) {
case 1:
val=digitalRead(inpin1);
if(val==LOW){
digitalWrite(led,LOW);
}else{
digitalWrite(led,HIGH);
}
case 2:
val=digitalRead(inpin2);
if(val==LOW){
digitalWrite(led,LOW);
}else{
digitalWrite(led,HIGH);
}
case 3:
val=digitalRead(inpin3);
if(val==LOW){
digitalWrite(led,LOW);
}else{
digitalWrite(led,HIGH);
}case 4:
val=digitalRead(inpin4);
if(val==LOW){
digitalWrite(led,LOW);
}else{
digitalWrite(led,HIGH);
}case 5:
val=digitalRead(inpin5);
if(val==LOW){
digitalWrite(led,LOW);
}else{
digitalWrite(led,HIGH);
}
case 6:
val=digitalRead(inpin6);
if(val==LOW){
digitalWrite(led,LOW);
}else{
digitalWrite(led,HIGH);
}
}
}
這是我現在的程式
根本無法運作
是我思考的方向有錯誤嗎 還是有更好的方法
煩請指點
附帶一提
ReplyDelete我打算等到全部的開關都按過之後 才重新設定另一個開關為新的大獎位置
這一段我真的想不出來 Orz
(我是在家裡自學的沒有老師可以問 QAQ
你想要的功能,我已經做出來寫成一篇了,請看http://yehnan.blogspot.com/2012/04/arduino.html。
ReplyDelete以下說說你原本程式裡的一些問題:
1. 在loop()裡呼叫long randnum = random(1, 7);,這樣不對,loop會被不斷地執行,這樣正確答案不就會一直改變了嗎。
2. switch裡,每個case的最後應該要有break。
你好!!!
ReplyDelete我想請問一下,我目前是有四段開關,我講一下每一段的開關動作
第一就是74HC595控制LED燈做跑馬燈+蜂鳴器的音樂
第二就是光敏電阻控制LED燈亮度,然後馬達會隨之旋轉
第三就是一班的手電筒照明
第四就是OFF
可以請求高手給我一點方向或解答嘛!?!?
謝謝
回覆上一篇,如果可以給我四段開關的程式以及接線更好。感恩!
ReplyDeleteto Unknown:
ReplyDelete我看不懂你的問題所在。
每一部份的功能你都做出來了嗎?
還是說,使用開關控制四個功能的這部份有問題呢?
就是我用開關執行四種動作...
ReplyDelete發現74HC595暫存器所控制的跑馬燈不會消失(切換開關的時候)
我要的是就是切換開關的時候,會執行下一個動作,然後跑馬燈會熄滅。
ㄟ,你都會使用74HC595製作跑馬燈了,我怎麼感覺你問的問題太過簡單?
ReplyDelete你應該可以讀取開關的狀態,然後控制595啊,應該是要控制595的腳位Pin 13(Output Enable),記得沒錯的話,低電位時595才能輸出,高電位時595就無法輸出。
你用的是有4段的開關嗎?型號?
您好,想請教一個問題:
ReplyDelete目前使用紅外線感應器做為底下這塊mp3擴張版的Senser來控制音樂播放
( http://www.elechouse.com/elechouse/index.php?main_page=product_info&products_id=2193 )
我想在一首音樂播放完之前,重複感應時不會再觸發下一次的感應,寫法暫時以delay一首歌的時間來做控制是可行的
但考慮到之後可能會更換音樂,時間長短不一
請問是否有程式碼可以得到音樂檔案的時間長度呢?
不太懂你的意思,你想要什麼功能,"重複感應時不會再觸發下一次的感應"是什麼意思?
Deleteset_mode的參數可以設定成CYCLE=2,代表重複播放所有歌曲。
還有個void send_cmd(u8 *cmd);,好像可以檢查"Check Current Playing File"目前播放中的歌曲,
不過好像都不是你要的。
我沒看到讀取mp3資訊的API。
我猜你想要的功能是:感應並播放歌曲,若歌曲正在播放中,此時再感應並不會有動作。
Delete我看了你給的網址裡的手冊(http://www.elechouse.com/elechouse/images/product/Arduino%20MP3%20Shield/Arduino%20MP3%20Shield%20User%20Guide.pdf),
裡頭有"Check Work State",回傳值是0x01 Playing、0x02 Stop、0x03 Pause,這麼一來你就知道是否正在播放中,感應到紅外線時,就可以作判斷。
謝謝,就是需要讀取這個資訊!
ReplyDelete再請問一下,要如何得到播放狀態呢?
程式碼裡面只有send_cmd,沒有寫到receive或讀取value的指令
https://github.com/elechouse/Mp3Shield/blob/master/MP3.h
https://github.com/elechouse/Mp3Shield/blob/master/MP3.cpp
因為剛接觸程式,目前還在基礎的應用階段
請教一下該如何寫呢? 或者哪裡有相關的教學可參考呢?
謝謝 :)
這種是專屬的擴充板,除了看原廠給的文件資料與範例程式碼,只能找找有沒有別人的使用經驗與心得分享吧。
DeleteMP3.h與MP3.cpp裡面的void stop()、void next()、void set_mode(u8 mode)、等等,其實最後都會去呼叫void send_cmd(u8 *cmd),
你的程式透過Serial介面與這塊"Arduino USB-SD MP3 Shield"溝通,send_cmd就是會根據手冊裡的所謂的"command",控制這塊擴充板、讀取擴充板目前的狀態,
你需要的功能class MP3並沒有提供,你必須自己寫,
首先要傳出Check Work State的指令,查詢手冊裡寫的指令格式後,如下:
void MP3::checkWorkState()
{
cmd_buf[1]=0x02;
cmd_buf[2]=0xC2;
send_cmd(cmd_buf);
}
送出指令給擴充板後,它也是經由Serial介面的另一條回傳結果,
根據手冊所述,擴充板會先回傳0xC2,
然後跟著狀態,有三種可能,
0x01 Playing
0x02 Stop
0x03 Pause
你必須接收、然後判斷,
接收的程式碼就是利用Arduino內建程式庫的Serial.read()。
您好,底下是我寫的程式碼
ReplyDelete#include
#include
MP3 mp3;
const int PIRSensor = 2; // 紅外線動作感測器連接的腳位
const int ledPin = 13; // LED 腳位
int sensorValue = 0; // 紅外線動作感測器訊號變數
void setup() {
/** begin function */
mp3.begin(); // select software serial
// mp3.begin(); // select hardware serial(or mp3.begin(MP3_HARDWARE_SERIAL);)
/** set volum to the MAX */
mp3.volume(0x1F);
/** set MP3 Shield CYCLE mode */
mp3.set_mode(MP3::SINGLE);
pinMode(PIRSensor, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop(){
sensorValue = digitalRead(PIRSensor); // 讀取 PIR Sensor 的狀態
mp3.checkWorkState(); //檢查播放狀態
Serial.begin(9600);
byte state = Serial.read(); //讀取播放狀態
if (sensorValue == HIGH && state == 0x02) {
mp3.play_usb_disk(0x0001); // 有人且停止播放時,放音樂
}
else if (state == 0x01) { //音樂播放中
sensorValue = 0;
}
當我使用Serial.print(state)檢查時,讀取到的資訊是亂碼(¾Ðû),以至於無法辨識狀態~
請問是哪邊的語法有問題呢?
另外,音樂播放中紅外線感應不接收訊息可以怎麼寫呢,目前寫的sensorValue = 0好像不太對?
謝謝~
執行mp3.checkWorkState()後,MP3擴充板應該會回傳兩個byte吧,
Delete第一個是0xC2,第二個是0x01播放中、0x02停止、0x03暫停。
當Serial.read()讀到0xC2時,需要再讀取一次,才知道第二個狀態值。
Serial.print預設會以ASCII印出字元,但這裡的東西不是ASCII碼,請改以Serial.print(state, HEX)印出16進位數字吧。
一種作法是,檢查有無放音樂,沒有才去讀取PIRSensor。
另一種是讀取PIRSensor,若是HIGH,再檢查音樂是否播放中。
感謝指點~ 我之前已經把播完整首歌後再進行下一次感應的語法寫出來了:
Delete#include
#include
MP3 mp3;
const int PIRSensor = 12; // 紅外線動作感測器連接的腳位
int sensorValue = 0; // 紅外線動作感測器訊號變數
void setup() {
/** begin function */
mp3.begin(); // select software serial
// mp3.begin(); // select hardware serial(or mp3.begin(MP3_HARDWARE_SERIAL);)
/** set volum to the MAX */
mp3.volume(0x1F);
/** set MP3 Shield CYCLE mode */
mp3.set_mode(MP3::SINGLE);
pinMode(PIRSensor, INPUT);
mp3.stop();
}
void loop(){
// 讀取 PIR Sensor 的狀態
sensorValue = digitalRead(PIRSensor);
mp3.checkWorkState(); //檢查播放狀態
while(Serial.available() > 0 ) {
int state = Serial.read(); //讀取播放狀態
if (state == 2) {
if (sensorValue == HIGH) { // PIR Sensor有人時
mp3.play_spi_flash(0x0001);
Serial.println("PLAY");
}
}
}
}
但這次的問題為:紅外線感應一直提供高電平給輸入腳位
(即使沒有感應到,播完一首便馬上再重複)
交叉測試後,使用按鈕取代紅外線感應時是沒問題的,以紅外線感應來控制LED開關也沒問題~
另外,如果改以電池作為外接電源,紅外線感應也沒有一直提供高電位的問題,只是電力不持久 @"@
在之前有一次使用12V 1.2A的變壓器測試過後,才開始有紅外線持續給高電位的問題
(後來才發現這塊擴充版只需要5V左右,電流範圍未知)
請問可能是哪邊出狀況,或者該如何測試找出問題呢?
謝謝~
嗯,光這樣我也不知道問題所在。可能要慢慢嘗試找出哪裡不對勁了。
Delete加油。
謝謝~ 可能要去找一些有做Arduino販賣或教學的地方做測試吧
Delete請問 如果是無限資料傳輸你會選擇xbee還是bluetooth呢
ReplyDelete咳,對這兩項技術有很深入了解才能做出好決定吧,我沒有。
Delete學習時可選擇bluetooth,有便宜的模組,可是真的要做成產品的話,實際根據需求比較看看才知道合適的是哪個。
嗯嗯 我是要做專題 我已經決定使用藍牙
Delete我的需求是 rfid透過藍牙傳輸到pc端再上傳server
以及能在server 從電腦透過藍牙控制及觀察電器狀態
這樣是用兩組藍牙1對1還是直接使用ethernet shield呢
嗯,聽起來都可以。
Delete你不是要無線嗎?Ethernet是有線的。為什麼中間還要有pc啊?
祝你專題順利。
真的很感謝您的回答
Delete那我就朝bluetooth前進
會有pc是我目前的認知 用藍牙usb收資料然後(labview or vb)上傳server
或其他還在尋找
有方法可以不需經pc??
感謝您!!
不敢,大家互相討論。
Delete所以server在很遠的地方囉,嗯,離rfid很遠,那當然就不能用藍牙了,
改用wifi shield?直接上網,從rfid端網路連線上傳資料,可以嗎?
不過wifi shield比較貴。
你好 想請問一下
ReplyDelete我想要把arduino serial monitor run出來的資料
轉換成文字檔(.txt) 或是表格之類的
存在電腦裡~
請問要如何辦到????
寫一支電腦端執行的程式,開啟序列埠並接收資料,然後依照你想要的格式存入檔案。
Delete不好意思~可以請你講詳細一點嗎
Delete像用什麼寫一支電腦端執行的程式?
程式裡面的內容 大致如何寫?
謝謝....
譬如用Python寫的話(先安裝pySerial):
Deleteimport serial
ser = serial.Serial('/dev/tty.usbserial', 9600) #修改成你的設定
while True:
print ser.readline()
這樣就可以讀取從Arduino透過序列埠傳來的資料。可以讀取後,再依照你想要的格式存入檔案。
可參考這份文件http://playground.arduino.cc/Main/Interfacing
請問一下我有一個SD讀寫模組
Deletehttp://goods.ruten.com.tw/item/show?21301179665180
已經可以轉換成文字檔存入sd卡了
但我想電腦可以直接打開文字檔(而非又拿sd卡插電腦
可以嗎?
還是要用你所說的用Python寫?
如果用vb介面可以嗎?
謝謝 不好意思 麻煩你
想要電腦可以直接打開文字檔?
Delete同樣的,電腦端要寫個程式跟Arduino溝通,傳送「我想要哪支檔案」,然後Arduino讀取SD模組、開啟檔案、將檔案內容回傳給電腦端的程式。
用什麼語言都能寫,重點是該語言應該要有序列埠(COM埠)的程式庫。VB當然可以。
你好! 我想請教關於arduino控制LED燈光的問題
ReplyDelete底下此支影片為參考
https://www.youtube.com/watch?v=InrQvtUuS2w&index=2&list=PL-5q0isSHMGJnOZTvEDCps5ZmZ2_6HsNe
我想知道arduino能接收的聲音波段是不是很有限?
畢竟不像PC那樣運算效能那麼高
那麼 假設
我想以processing 的 FFT 結合像上面那部影片的LED控制
這是有可能的嗎?
我的主要構想是:
用processing接收聲音(比如:彈奏吉他)
交由筆電運算,在連結arduino
達到用彈奏吉他來改變燈光的閃爍或明亮
接觸不久,有很多問題
煩請指教! 謝謝
> 我想知道arduino能接收的聲音波段是不是很有限?
Delete不太懂你的意思,我想答案是:還要接其他零件才能接收聲音。
你給的影片裡,他就用了MSGEQ7這顆晶片,將聲音送進去後,晶片分析成七個頻段63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz, 16kHz。
> 用processing接收聲音(比如:彈奏吉他)
怎麼接收?
你可以電腦裝Processing,裝麥克風,人在旁邊彈吉他,接收後處理,分析頻率振幅,
然後電腦接Arduino,Processing送出資料給Arduino,Arduino根據資料控制LED的亮度。
這樣應該有達到你的需求吧。
您好,可以分享利用Processing裝麥克風接收聲音,再由電腦分析頻率,最後輸出到Arduino的CODE嗎?
Delete我GOOGLE不到相關資料,麻煩了
搜尋「processing microphone frequency」可以找到很多資料與範例吧。
Delete你好,我目前在學習利用Arduino UNO板控制、類比搖桿去控制機械手臂,而手臂有4個馬達分別為S3003(控制夾子)、MG995(底座)、SG-5010(關節部分),以下我寫的程式,但是11跟12腳位,卻不能動作,請問程式哪邊寫錯嗎? 麻煩你了。
ReplyDelete#include
Servo servoX,servoY,servoC,servoK;
const byte pinX=A0;
const byte pinY=A1;
int valX,posX;
int valY,posY;
int valC,posC;
int valK,posK;
void setup()
{
servoX.attach(9);
servoY.attach(10);
servoC.attach(11);
servoK.attach(12);
}
void loop(){
valX=analogRead(pinX);
valY=analogRead(pinY);
posX=map(valX,0,1023,0,179);
posY=map(valY,0,1023,0,179);
posC=map(valC,0,1023,0,179);
posK=map(valK,0,1023,0,179);
servoX.write(posX);
servoY.write(posY);
servoC.write(posC);
servoK.write(posK);
delay(100);
}
posC=map(valC,0,1023,0,179);
DeleteposC受valC控制,可是valC一直都是0。
你的analogRead只會改變valX與valY,
valC與valK都不會改變,所以posC posK servoC servoK很自然地都不會動。
原來如此,謝謝你!,有問題會在請教!
Delete我請教一個問題....
ReplyDelete用ARDUINO做lcd螢幕顯示器顯示hello, world
結果都是亂碼 有時接出來還顯示不出來只有背光@@
這要怎麼辦?
請再提供多一點資訊,否則無法判斷。
Delete或許可先參考我這篇,
Arduino練習:以LiquidCrystal程式庫控制LCD(相容於Hitachi HD44780)
http://yehnan.blogspot.tw/2012/02/arduinoliquidcrystallcdhitachi-hd44780.html
我想問一下,如果把sd卡寫出的值存進bin檔且是二進制(不是0110,是亂碼)
ReplyDelete看不太懂你的問題。
ReplyDelete或許可以注意一下寫入時是使用二進位格式還是ASCII格式吧。
我使用myFile.println(ecg.abc(他是一個變數),BIN);
Delete輸入到那個檔案她顯示1001 1000 .....(二進制)
想請問要怎把他變成二進制(就開起內容是亂碼)
不知道這樣說你看得懂嗎-.-
println會以ASCII輸出吧,
Delete你應該找找名稱為write的函式(or方法)。
用write可以寫進檔案裡面嗎??
Delete我用成功了!!謝謝大大的提醒 感謝你 :)
Delete如果我還有Arduino的問題 會再來詢問你 :)
請問要怎麼把Arduion 壓力感測器 輸出的值讓手機接收
ReplyDelete無線傳輸?藍牙?Wi-Fi?
Deletefsk
Delete就是用音源線
Delete我沒有相關經驗。
Delete拜過孤狗大神後,第一個連結是
http://code.google.com/p/androino/wiki/AndroinoTerminal
或許是你要的。
恩 謝謝摟 不過這個已試過XD
Delete試過了?那不就解決了嗎?:D
DeleteGood Luck.
請問 我使用eepromAnything將String寫入 String的長度大概是9~12bytes
ReplyDelete例如 String CmbString="12345678912"'; 我用for 迴圈寫入位址
for(int n =0;n<600;n+=20)
{
if(list[n/20]!=0)
EEPROM_writeAnything(n,list[n/20]);
}
我要做EEPROM的增加 刪除
程式寫入 第一次開始Serial Monitor時都正常
但在我把Serial Montor 關閉 再打開 就會錯誤
從EEPROM讀取出來的值也會錯誤 亂碼
請問你有相關的經驗嗎 感恩
抱歉 忘了說
ReplyDeleteString list[30];
我會把String CmbString放進去list
讓他去寫入
你想寫入EEPROM的東西是什麼?
Delete位址?你放入的東西是String物件,不是位址吧。
使用EEPROM_writeAnything時,我覺得後面傳入的東西最好是一般的型別,譬如struct,不要傳入String這種物件。因為EEPROM_writeAnything裡操作的對象都是一個個byte。
對!是String
Delete好的 我會試著轉格式
我只是困惑 一開始開Serial monitor 都不會錯誤 關掉monitor再打開就錯誤
是否會跟我環境建置有關?
我是在官網有eepromAnything.h
放進libraries EEPROM資料夾內
有些教學說要放eeprom_anything.h 跟eeprom_anything.pde
檔案與所寫的.ino在一起 我的無法compile
要存字串的話,可以把String轉成char陣列,然後再存。
Delete> 我只是困惑 一開始開Serial monitor 都不會錯誤 關掉monitor再打開就錯誤
從你給的東西,看不出為什麼。
官網的可行(http://playground.arduino.cc/Code/EEPROMWriteAnything);
eeprom_anything.h 跟eeprom_anything.pde?你是看coopermaa嗎,
因為把c++ template分成兩個檔案了,所以編譯不過,這是因為新版Arduino軟體編譯器改變了的關係。
可以參考我寫的http://yehnan.blogspot.tw/2014/03/arduinoeeprom.html。
至於把eepromAnything.h放進libraries EEPROM資料夾內,
並非正確作法,但似乎可行(沒試過)。
那個我想問C的fseek、fread的函式類型,是否有Arduino上??
ReplyDeleteArduino開發板本身沒有檔案系統吧,不過底下的AVR C程式庫有fread等函式。
Delete如果你是要存取SD記憶卡,應該要使用SD程式庫,http://arduino.cc/en/Reference/SD。
不好意思,那個我的程式弄好RUN完,檔案裡面內容前半段都好好的,可是到後半段就變成2124714368
Delete-857893823
-718104063
-2147483648
856765632
.
.
.
等
我不曉得我是哪邊出現問題= = "
抱歉,光這樣完全不知道怎麼幫你。
Delete抱歉,我問題我沒說的很詳細。
Deletefor ( frame = 0; frame < ( c / 64 ); frame++ ) {
//fseek( fPtrb, byte_ptr*sizeof( char ), SEEK_SET );
myFile.seek( byte_ptr*sizeof( char ) );
for ( j = 0; j < 128; j++ ) {
//fread( &Array_bin, sizeof( char ), 1, fPtrb );
Array_bin = myFile.read();
de.dec2bin_unsigned( Array_bin, bin_read );
for ( i = 0; i < 8; i++ ) {
Array_decoding[ i + j * 8 ] = bin_read[ 7 - i ];
}
}
de.ECG_decode( Array_decoding );
for ( i = 0; i < 64; i++ ) {
de.ecg_reconstrut[ i ] = ( ( de.ecg_2048[ i ] + 0.5 ) );
myFile1.println( de.ecg_reconstrut[ i ] );
}
byte_ptr = byte_ptr + ceil( de.addr_ptr * 0.125 );
}
這是我主程式,我RUN完之後,去查看TXT檔內容
TXT檔的前半部都OK,可是到了第49XX行之後就開始顯示我上面說的數字。
我TXT檔總共有5760個,我不知道到底是哪邊出問題了
沒給的東西太多了,de、Array_decoding、ECG_decode、ecg_reconstrut等等,沒辦法幫你。
DeleteGood luck debugging.
難道是因為數字太大了,overflow?
Delete還是byte_ptr指到不對的位置了?
還是de裡解碼轉換時出錯了?
其他...
我現在把資料量改成3584筆就不會出現那個問題了,
Delete謝謝你的指導。
不敢。
Delete隔空抓藥很困難,多半都要靠自己。
Best regards.
請問一下大大有沒有使用過 http://arduino.cc/en/Guide/TFTtoBoards 這裡面這格LCD版子
ReplyDelete我想請問一下他有附加的SD卡功能,我使用它的範例去顯示圖片結果都初始SD卡都失敗
不曉得我哪裡出了問題
沒用過。
Delete有什麼錯誤訊息嗎?
因為我讀取SD卡的時後都是失敗,
Delete我都照那個網址所給的腳位接了
不曉得是哪邊出現錯誤
會不會是我這張記憶卡太大和是HC的問提呢??
Delete換張普通一點的記憶卡試試看吧。重新格式化記憶卡試試看,FAT16或FAT32。
Delete確定是SD.begin就出問題嗎?有什麼輸出訊息呢?
譬如底下,若失敗就會輸出"failed":
if (!SD.begin(sd_cs)) {
Serial.println("failed!");
return;
}
Serial.println("OK!");
換了普通點的記憶卡,突然就好了==
Delete恭喜。
Delete我有張擴充卡,也只能用舊的記憶卡。
不好意思,我又來提問題了
ReplyDelete請問你玩過NFC(DFROBOT0231)這個板子嗎??
我用了範例程式結果不能跑,不曉得哪裡出錯誤
https://core-electronics.com.au/store/index.php/nfc-module-for-arduino.html
下面有範例程式的code
沒用過。
Delete這是DFROBOT的產品,建議您到DFROBOT的網站上詢問。
我看了範例sketch,看來這塊擴充板是以序列介面與Arduino板溝通,sketch裡是使用Serial1,不過只有Mega、DUE、Leonardo才有Serial1吧,Uno必須使用軟體Serial。
Delete請問你使用哪塊Arduino擴充板,或許問題出在這裡?
我使用UNO板,可能是用這塊版子導致我的編譯時候出現Serial1錯誤吧
Delete這份範例sketch應不能用於Uno板。
Delete或許修改後就可以吧,須使用SoftwareSerial。
Delete我先用最小塊的Leonardo來用看看,謝謝大大
Delete請問 如何寫出 每按下一次按鈕後讓七段顯示器+1
ReplyDelete首先讀取按鈕狀態,請參考
DeleteArduino練習:以開關切換LED明滅狀態
http://yehnan.blogspot.com/2012/02/arduinoled.html
在程式裡定義變數儲存七段顯示器顯示的數字,
當按下一次按鈕後,便讓該變數加一,若大於9就歸零,
然後更新顯示七段顯示器。
好的 我研究看看 感謝
Delete我是用Uno板子
ReplyDelete您好 想請教一下
ReplyDelete我的板子是Yún 正在試寫讀取本身sd卡的資料 我看您的教學http://yehnan.blogspot.tw/2014/04/arduino-yunbridgefileio.html#uds-search-results
燒錄沒問題 可是之後什麼反應都沒有...
不管是/mnt/sd/data.txt還是/mnt/sda1/data.txt 都沒變化
我sd卡裡也有一個名為arduino的資料夾
我有更新過Linino映像檔
請問我還有哪裡需注意的地方呢?
謝謝
micro sd卡會被掛載在/mnt/sda1之下,
ReplyDelete若使用/mnt/sd作為路徑,那麼開檔後會儲存在sd卡的arduino資料夾內,
我那篇文章使用的路徑與檔名是"/root/data.txt",應該會把檔案儲存在Yun本身的Flash快閃記憶體空間裡。
檔案開檔後,記得最後要close,
Delete寫入資料後,也可以呼叫flush清空緩衝區,確保資料會被寫入檔案。
我直接複製您那篇的程式 改路徑/mnt/sd或/mnt/sda1
ReplyDelete我用官方的範例也是不行 其怪的是我能更新Linino映像檔 但要跑程式就沒反應 應該不是挑sd卡問題吧(8G c10)
請問您的IDE是1.5.7嗎?
arduino官方論壇裡好像不少人有Yún讀sd的問題 不知道是不是bug
我用官方的範例也是不行?沒有錯誤訊息嗎?
Delete我應該是用1.5.6版。
我當初使用Bridge時,也是搞了很久。其他程式正常嗎?Console、Process、YunServer與YunClient之類的。
更新Linino映像檔 與 跑程式就沒反應 之間並無直接的連帶關係。
我那一篇是寫入到Yun本身的Flash快閃記憶體,先試試這個吧。
我發現我到不了void loop()
ReplyDelete我加入13腳LED去試 都不亮
#include
void setup() {
pinMode(13, OUTPUT);
Bridge.begin();
Serial.begin(19200);
FileSystem.begin();
while(!Serial);
}
void loop () {
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
...
......(後面就是原本的程式碼)
#include後面有FileIO.h 這裡加< 好像顯示不出來
Deletehttps://github.com/arduino/YunBridge/issues/12
ReplyDelete不知道是不是他們說的這問題...
看起來他們後來有解決問題?不過我看不太懂...
既然到不了loop(),那麼在setup()裡就卡住了,可能是Bridge.begin();或FileSystem.begin();出問題。
Delete建議你在每行程式碼前後都加入Serial的print,輸出一些訊息,這樣可判斷哪行出問題。
我本來會卡在Bridge.begin();,後來更新Linino映像檔就ok了。
我那時用的是「Linino 1.0 Upgrade Image」http://yehnan.blogspot.tw/2014/04/arduino-yunlinino.html,
現在網頁上放的好像是1.3版,我就沒試過了。
您好請教一下,我想要把霍爾感測器與計數器結合,就是每當霍爾偵測到訊號計數器+1,以下程式偵測到霍爾的訊號但磁鐵一直不放開會一直+1,請問如何改程式?
ReplyDeleteint i;
int j;
int count=0;
int inPin=A0;
int val=0;
int number;
int type;
const int debounceDelay=20;
unsigned long time=0;
const byte num[10]={
B11000000, //0
B11111001, //1
B10100100, //2
B10110000, //3
B10011001, //4
B10010010, //5
B10000010, //6
B11111000, //7
B10000000, //8
B10010000}; //9
const int seg[]={2,3,4,5,6,7,8,9}; //abcdefgp
const int digit[]={10,11,12,13}; //D0-D3
void setup()
{
for(i=0;i<8;i++)
pinMode(seg[i],OUTPUT);
for(i=0;i<4;i++)
{
pinMode(digit[i],OUTPUT);
digitalWrite(digit[i],HIGH);
}
}
void loop()
{
number=count;
for(i=3;i>=0;i--)
{
for(j=0;j<8;j++)
{
if(bitRead(num[number%10],j))
digitalWrite(seg[j],HIGH);
else
digitalWrite(seg[j],LOW);
}
digitalWrite(digit[i],LOW);
delay(5);
digitalWrite(digit[i],HIGH);
number=number/10;
if(millis()-time>=190)
{
time=millis();
pinMode(inPin,INPUT);
val=
digitalRead(inPin);
if(val==LOW)
count++;
if(count>750)
count=0;
}
}
}
http://pastebin.com/jSw1FBL3
Delete試試看吧,只有編譯過,沒實際跑過。
還是會有磁鐵一直不放開(low)會一直+1的問題.
Delete再try一次吧,
Deletehttp://pastebin.com/F8TSpq7q
如果不行,請自己看看程式碼、試著修改看看囉。:)
Good Luck.
您好喔 我使用範例程式
ReplyDelete#include
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis()/1000);
}
腳位都照著他接再DUEMILANOVE的腳位上 但是LCD只有上列有明暗的反應卻沒有hello word 顯示
真的不知道哪方面有問題 ><
這份程式碼很簡單,並沒有問題。
Delete只能想到應該是電路出問題,若是照http://yehnan.blogspot.tw/2012/02/arduinoliquidcrystallcdhitachi-hd44780.html接線的話,建立LiquidCrystal物件時應該是LiquidCrystal lcd(12, 11, 2, 3, 4, 5);才對。
您好,我昨天有發問關於麥克風接收音樂頻率
ReplyDelete我搜尋到CODE後編譯,下方顯示
==== JavaSound Minim Error ====
==== Unable to return a TargetDataLine: unsupported format - PCM_SIGNED 44100.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian
=== Minim Error ===
=== Minim.getLineIn: attempt failed, could not secure an AudioInput.
我也有安裝MINIM的LIBRARY,不知道問題出在哪
import ddf.minim.*;
import ddf.minim.analysis.*;
Minim minim;
AudioInput in;
FFT fft;
String note;// name of the note
int n;//int value midi note
color c;//color
float hertz;//frequency in hertz
float midi;//float midi note
int noteNumber;//variable for the midi note
int sampleRate= 44100;//sapleRate of 44100
float [] max= new float [sampleRate/2];//array that contains the half of the sampleRate size, because FFT only reads the half of the sampleRate frequency. This array will be filled with amplitude values.
float maximum;//the maximum amplitude of the max array
float frequency;//the frequency in hertz
void setup()
{
size(400, 200);
minim = new Minim(this);
minim.debugOn();
in = minim.getLineIn(Minim.MONO, 4096, sampleRate);
fft = new FFT(in.left.size(), sampleRate);
}
void draw()
{
background(0);//black BG
findNote(); //find note function
textSize(50); //size of the text
text (frequency-6+" hz", 50, 80);//display the frequency in hertz
pushStyle();
fill(c);
text ("note "+note, 50, 150);//display the note name
popStyle();
}
void findNote() {
fft.forward(in.left);
for (int f=0;f<sampleRate/2;f++) { //analyses the amplitude of each frequency analysed, between 0 and 22050 hertz
max[f]=fft.getFreq(float(f)); //each index is correspondent to a frequency and contains the amplitude value
}
maximum=max(max);//get the maximum value of the max array in order to find the peak of volume
for (int i=0; i<max.length; i++) {// read each frequency in order to compare with the peak of volume
if (max[i] == maximum) {//if the value is equal to the amplitude of the peak, get the index of the array, which corresponds to the frequency
frequency= i;
}
}
midi= 69+12*(log((frequency-6)/440));// formula that transform frequency to midi numbers
n= int (midi);//cast to int
//the octave have 12 tones and semitones. So, if we get a modulo of 12, we get the note names independently of the frequency
if (n%12==9)
{
note = ("a");
c = color (255, 0, 0);
}
if (n%12==10)
{
note = ("a#");
c = color (255, 0, 80);
}
if (n%12==11)
{
note = ("b");
c = color (255, 0, 150);
}
if (n%12==0)
{
note = ("c");
c = color (200, 0, 255);
}
if (n%12==1)
{
note = ("c#");
c = color (100, 0, 255);
}
if (n%12==2)
{
note = ("d");
c = color (0, 0, 255);
}
if (n%12==3)
{
note = ("d#");
c = color (0, 50, 255);
}
if (n%12==4)
{
note = ("e");
c = color (0, 150, 255);
}
if (n%12==5)
{
note = ("f");
c = color (0, 255, 255);
}
if (n%12==6)
{
note = ("f#");
c = color (0, 255, 0);
}
if (n%12==7)
{
note = ("g");
c = color (255, 255, 0);
}
if (n%12==8)
{
note = ("g#");
c = color (255, 150, 0);
}
}
void stop()
{
// always close Minim audio classes when you are done with them
in.close();
minim.stop();
super.stop();
}
錯誤訊息有說:
Delete==== JavaSound Minim Error ====
==== Unable to return a TargetDataLine: unsupported format - PCM_SIGNED 44100.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian
=== Minim Error ===
=== Minim.getLineIn: attempt failed, could not secure an AudioInput.
想要取得LineIn卻失敗了,所以無法生出AudioInput、無法回傳TargetDataLine供你使用,
大概是因為你沒有去控制台設定麥克風相關裝置吧。
謝謝!
Delete現在已經可以測得頻率了~
只剩下最後與ARDUINO的結合
有問題會再繼續來發問,感恩~
請問一下,如何用mega2560使用bluetooth V3 傳讀到的A0值給手機端顯示??
ReplyDelete第一次使用這種藍芽裝置
看不出來其規格跟一般便宜的藍牙模組有何不同,大概品質有差;都是Bluetooth v2.0 + EDR、傳輸方式也都是Bluetooth serial port。
Delete首先連接mega2560與bt v3,讓bt v3進入設定模式,設定你想要的名稱與配對密碼;
然後讓bt v3進入傳輸模式,讓手機與它進行藍牙配對;
至於要傳資料的話,手機端必須有App負責接收,
若是Android的話,可以用App Inventor來寫。
想請問一下,我想在我在arduino TFT板上SHOW訊號時,按下一個按鈕(紀錄)可以直接把訊號直存進SD卡裡面,然後再按一下就可以停止他。
ReplyDelete之前有寫可是一直怪怪的,所以想請問大大這邊該如何撰寫才好?
還有如何在那塊板子顯示系統時間?? 是要按照大大樓上文章那一個RTC即時時鐘差不多嗎??
Delete> 該如何撰寫才好?
Delete看不懂你的問題。哪一塊板子?功能是什麼?
> 顯示系統時間?
可以加裝RTC,或是裝網路擴充板,上網抓取目前的日期時間。
使用mega2560和TFT LCD板子,想量測訊號值可以在LCD上面顯示出來和設一個按鈕可以記錄/停止,儲存進SD卡裡面,方便我能在SD卡讀取訊號值
Delete設個全域變數,由按鈕來切換其值,大概是0跟1吧,
Delete根據其值,若是0就不做事,
若是1就量測訊號。
順帶一提,Arduino的TFT LCD板子應該很多吧。
Delete恩,上次我也這樣寫可是有點bug所以才想跑來問大大有沒有別的寫法,我等等在來測試看看。謝謝
Delete有bug就debug吧。
Deleteint sensor = analogRead(A0);
DeleteFile dataFile = SD.open( "recorddata.txt", FILE_WRITE );
if( ADRecord == true ) {
if( dataFile ) {
dataFile.println( sensor );
Serial.println( sensor );
dataFile.close();
}
else{
Serial.println( "error" );
}
}
葉難大哥,請問一下我這樣寫有甚麼錯誤嗎??
他一直給我出現ERROR 我也不知道是怎麼了ㄒ口ㄒ
錯誤訊息?
Delete列印出ERROR
Delete大概是開檔失敗吧。請參考http://arduino.cc/en/Tutorial/ReadWrite
DeleteSD程式庫有先呼叫begin嗎?
SD.open通常會放在setup裡面吧。
如果我是用在按鈕等待我的ADRecord = true 才進來裡面的話
DeleteSD.open我如果放在那裏面,我在下面用那個東西不會引用不道嗎??
看不懂你的問題。
Delete就... 我想靠一個按鈕來啟動那段程式,可是啟動他會一直列印出ERROR
Delete然後你說File dataFile = SD.open( "recorddata.txt", FILE_WRITE );可以放在setup裡面,那我在那段程是引用那個dataFile可以用嗎?
我記得好像不能
請參考http://arduino.cc/en/Tutorial/ReadWrite的寫法。File dataFile;放在外面,dataFile = SD.open(...);放在setup裡。
Delete既然印出error,那就是說dataFile沒東西是false,也就是開檔失敗了。
恩,謝謝葉難大大。
Delete我來去修改了,辛苦你幫我解答。
想測試藍芽傳輸的數值是否有漏掉,該如何用筆電接收數值來比對??
ReplyDelete可是,一個藍牙裝置可以跟另兩台機器配對嗎?
Delete嘛,你問的太廣了,無法回答。
一排一 = 0x00FFA25D; 一排二 = 0x00FFE01F; 一排三 =0x00FF629D;
Delete二排一 = 0x00FFA857; 二排二 = 0x00FFE21D; 二排三 = 0x00FF906F;
三排一 = 0x00FF22DD; 三排二 = 0x00FF6897; 三排三 = 0x00FF02FD;
四排一 = 0x00FF9867; 四排二 = 0x00FFC23D; 四排三= 0x00FFB047;
你好我要用紅外線控制燈
ReplyDelete並且用遙控器
然後?
Delete我程式打完 燈一直亮著
ReplyDelete/*
ReplyDelete* irObjectDetection.pde: 紅外線物體偵測
*/
const int irReceiver = 2; // 紅外線接收器
const int irLed = 3; // 紅外線發射器
const int ledPin = 13; // 紅外線指示燈
const unsigned int frequency = 38000; // 發射頻率(單位: Hz)
void setup() {
Serial.begin(9600); // 開啟 Serial port, 通訊速率為 9600 bps
pinMode(irReceiver, INPUT); // 把 irReceiver 接腳設置為 INPUT
pinMode(irLed, OUTPUT); // 把 irLed 接腳設置為 INPUT
pinMode(ledPin, OUTPUT); // 把 ledPin 設置為 OUTPUT
tone(irLed, frequency); // 產生指定頻率的脈波 (Pulses)
}
// 讓指示燈閃爍幾下
void blinkLED() {
for (int i=1; i<= 4; i++) {
digitalWrite(ledPin, HIGH); // 打開指示燈
delay(100);
digitalWrite(ledPin, LOW); // 關掉指示燈
delay(100);
}
}
void loop() {
int ir_status = digitalRead(irReceiver); // 讀取 irReceiver 的狀態
Serial.println(ir_status); // 把 irReceiver 的狀態印到 Serial Port
// 檢查 irReceiver 是否有收到紅外線訊號
// 有的話,ir_status 會是 0 (因為 Receiver 會把訊號反向, 所以 0 代表有收到訊號)
if (ir_status == 0)
blinkLED(); // 讓指示燈閃爍幾下
}
並且要用遙控器 控制
這份程式碼是從「Cooper Maa: 紅外線物體偵測 (1)」來的吧,此範例的目標是偵測IR發射器與接收器之間有無障礙物,有的話指示燈會閃爍。
Delete可是你之前的「一排一 = 0x00FFA25D;」,這是紅外線解碼後得到的資料,應該須使用紅外線程式庫吧,可參考我的另一篇文章「http://yehnan.blogspot.tw/2013/05/arduino.html」。
/*
ReplyDelete* irObjectDetection.pde: 紅外線物體偵測
*/
const int irReceiver = 2; // 紅外線接收器
const int irLed = 3; // 紅外線發射器
const int ledPin = 13; // 紅外線指示燈
const unsigned int frequency = 10000; // 發射頻率(單位: Hz)
void setup() {
Serial.begin(9600); // 開啟 Serial port, 通訊速率為 9600 bps
pinMode(irReceiver, INPUT); // 把 irReceiver 接腳設置為 INPUT
pinMode(irLed, OUTPUT); // 把 irLed 接腳設置為 INPUT
pinMode(ledPin, OUTPUT); // 把 ledPin 設置為 OUTPUT
tone(irLed, frequency); // 產生指定頻率的脈波 (Pulses)
}
// 讓指示燈閃爍幾下
void blinkLED() {
for (int i=1; i<= 4; i++) {
digitalWrite(ledPin, HIGH); // 打開指示燈
delay(100);
digitalWrite(ledPin, LOW); // 關掉指示燈
delay(100);
}
}
void loop() {
int ir_status = digitalRead(irReceiver); // 讀取 irReceiver 的狀態
Serial.println(ir_status); // 把 irReceiver 的狀態印到 Serial Port
// 檢查 irReceiver 是否有收到紅外線訊號
// 有的話,ir_status 會是 0 (因為 Receiver 會把訊號反向, 所以 0 代表有收到訊號)
if (ir_status == 0)
blinkLED(); // 讓指示燈閃爍幾下
}
int d;
unsigned long v = 0x0;
case '1':
v = 0x00FFA25D;
break;
case '2':
v = 0x00FFE01F;
break;
case '3':
v = 0x00FF629D;
break;
case '4':
v = 0x00FFA857;
break;
case '5':
v = 0x00FFE21D;
break;
case '6':
v = 0x00FF906F;
break;
}
if(v != 0x0){
Serial.print("read ");
Serial.print(d);
Serial.print(", IR send ");
Serial.println(v, HEX);
irsend.sendNEC(v, 32); // 輸出紅外線訊號
}
}
}
編譯的怪怪的
case應該包在switch之內。
Delete如果你想收到紅外線遙控器發出的訊號並解析、得到類似0x00FF906F的數值的話,使用紅外線程式庫,譬如IRremote,請參考我的另一篇文章「http://yehnan.blogspot.tw/2013/05/arduino.html」。
據我所知,這套程式庫無法在同一塊板子上同時使用紅外線發射器與接收器,你想要的功能應該是使用一個紅外線接收器,接收控制器的訊號,根據按下的按鍵不同執行不同的功能。
那個請問一下葉難大大,我用HC-05藍芽模組鮑率38400時,用手機軟體去監看藍芽模組,傳一個數值過去他沒回傳給我數值。然後改鮑率19200結果就可以了 請問是為甚麼呢?? 上禮拜38400還可以現在就不行 我也不曉得
ReplyDelete呃,已經到了這個地步,你如果不知道原因,那我也不知道了。
Delete就我個人經驗而言,用SoftwareSerial本來就有可能出錯,收或發都可能出錯。
程式裡若有兩個序列埠,若鮑率不同、傳輸量很大、而且互相需要配合,那就有可能漏掉資料;不過就你的程式而言,應該無此問題。
序列埠的鮑率,必須兩端都相同,不過這點你應該早就知道,
Delete或許一時忘記,沒作修改。
板子:MEGA 2560
ReplyDelete程式碼:
#include
#include
SoftwareSerial I2CBT(10, 11);
byte serialA;
void setup() {
//define pin modes for tx,rx pin
pinMode(10, INPUT);
pinMode(11, OUTPUT);
Serial.begin(57600);
I2CBT.begin(38400); //與藍牙發射器的鮑率為 9600
I2CBT.println( "Connection!!" );
}
void loop () {
serialA = I2CBT.read(); //接收 Android 藍牙資料
if ( serialA == '3' ) {
for( int xx = 0; xx < 10000; xx++ ) {
int i=analogRead(A0)*2.5;//讀取感應器值
I2CBT.print( i/256 );
I2CBT.print( i%256 );
I2CBT.write( 'C' );
//delay(10);
}
}
}
呃,為什麼要for( int xx = 0; xx < 10000; xx++ ) 一萬次?
Delete因為要傳到手機端畫圖,昨天測試好了 很像是因為arduino IDE版本的問題
Delete請問一下葉難大大,我之前利用Processing連結Mic做出的聲音感測頻率已經OK了
ReplyDelete現在想再做,聲音鎖的功能,該怎麼實現聲音比對然後解鎖呢?沒頭緒從哪邊找資料
哇,恭喜你。
Delete聲音比對?
我也沒頭緒。
葉難大大! 有個問題困擾我很久了,我想破了頭都無解...
ReplyDelete我在Arduino寫了一個可以運行溫度數值並顯示在LCD16*2上,
由於想要在手機上同步顯示,上網爬了許多文章,都是以類比訊號,藍芽傳送手機APP,
可我已寫好溫度數值,想直接將溫度數值經由藍芽傳送至手機顯示...
墾請葉難大大,Help ! ( 我改來改去,都變成類比訊號A0腳類比訊號的值顯示在手機上 )
code?
Delete我使用的板子是 arduino uno & HC-05 藍芽
Delete藍芽 code ( 我是參考這個網站來做修改的 )
http://blog.cavedu.com/appinventor-%E5%9C%96%E5%BD%A2%E5%8C%96android/appinventorandarduinowithbluetooth3/
這是讀取類比訊號數值再經由藍芽傳送到手機APP( 數值是 0 ~ 1023 ),
該怎麼修改藍芽 code 可直接經由我寫好的溫度數值發送數值到手機顯示呢? ( 懇請葉難大大指導一下 )
( 我只想顯示溫度在手機上 只求溫度數值傳到手機上 溫度code我已完成 藍芽code把我頭搞大了 )
https://www.youtube.com/watch?v=tZXBnaVVjwM ( 在手機上秀 出溫度 該修改哪裡 懇請葉難大大 指導指導 )
你給的網站波文已經寫好了啊。
Delete他讀取A0後,
int i=analogRead(A0);//讀取感應器值
因為i大於1個位元組,所以他再把i分開成兩個位元組。
Data[1]=i/256;
Data[2]=i%256;
如果你已經把類比訊號轉成兩位數的溫度數值了,那就能以一個位元組儲存,
毋須上述步驟,呼叫藍牙的write送出。
手機端收到的就是一個位元組(0~255),然後再想辦法顯示。
如果你溫度數值(兩位數)轉成兩個ASCII碼,那就是兩個位元組。
DeleteBy the way, why not just ask Cavedu directly?
Delete版主 可以教一下用如何控制8x8點矩陣嗎
ReplyDelete陣列搞不懂 不知道怎麼控制動態字元上下左右移
雖然書上有程式範例 但想改移動方向不知道怎麼下手
謝謝!
書上?是我的書嗎?
Delete拙作「Arduino輕鬆入門:範例分析與實作設計」
http://yehnan.blogspot.tw/2014/02/arduino_21.html
在5.5有介紹8x8 LED矩陣、MAX7219、程式庫MaxMatrix,
範例是向左移動的跑馬燈。
不過沒有你想要的動態上下左右移。
版主您好,最近在做arduino藍芽模組連線,模組是採用HC-06,遇到一些瓶頸,目前已經可以和手機APP連線,想嘗試兩組arduino藍芽模組配對連線。一個是master,另一個是slave,再進行配對在控制LED亮滅,有類似的範例可參考嗎?感恩
ReplyDelete嗯,我好像試過,不太記得了,不過有個朋友的確是個讓兩塊Arduino板子透過藍牙模組連線,這是肯定的。
Delete範例的話,沒找到耶;等您來寫分享文囉,:D。
您好版主,我有問題想請教你 我是自學arduino 以下是我的程式
ReplyDelete板子:arduno uno
int valuetemp;
const int RL=2;
const int GL=3;
void setup() {
pinMode(RL, OUTPUT);
pinMode(GL, OUTPUT);
Serial.begin (9600);
}
void loop() {
Serial.println (analogRead(0));
valuetemp = analogRead(1);
valuetemp = valuetemp *125/256;
Serial.println(valuetemp);
delay(500);
if(analogRead(0) > 90 ) {
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
delay(100);
}
else if(analogRead(0) < 90 )
{
digitalWrite(3, HIGH);
digitalWrite(2, LOW);
delay(100);
}
if(analogRead(1) > 25 ) {
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
delay(100);
}
else if(analogRead(1) < 25 )
{
digitalWrite(3, HIGH);
digitalWrite(2, LOW);
delay(100);
}
}
我是做一個感光溫度控制 但是其中一個動作 另一個沒動作怎樣讓它合併說我其中一個動作就可以執行了
看不懂你的問題。
Delete你好我的問題是感光部分數值到了他動作
DeletedigitalWrite(2, HIGH);
digitalWrite(3, LOW);
但是我溫度沒到他又跳回去了 他這兩個東西是控制同樣的LED
我原本的設想是感光到了LED2開LED3關或者溫度到了也可以
不太清楚你要的。
Delete或許是這樣 http://pastebin.com/4WZwzezP
不確定。
恩恩 感謝您 你的書我很想借 在我們學校書一直都借不到 我都很想哭, 那我有問題再來問您 謝謝
Delete您好 我想請問一下昨天的那個的程式 加入三個個按鈕開關想讓它強制個別LED開並持續,和跳回感光和溫感的模式,它是用break 還是用continue,我只借到兩本書一本是 踏進互動世界使用arduino 一本是arduino互動設計入門與應用零基礎快速上手指南,這些裡面只教一些
Delete基本指令及元件介紹和基本程式運用 您昨天給的程式裡合併條件用|| 書裡沒有介紹到所以我才上網來查查有什麼解決辦法,找一找就找到您這裡了
你問的問題屬於C語言,不是Arduino的範疇,幾乎每一本Arduino的入門書,都是以Arduino範例為主,主角是電子零件、感測器、晶片,由淺至深,然後才介紹需要的C程式結構(譬如if、for、break)、以及需要的Arduino核心函式(譬如digitalRead)。
Delete這些東西,Arduino官網http://arduino.cc/en/Reference/HomePage 都有,但是屬於參考手冊的形式,也就是供人查詢之用。
Arduino的入門書,我推薦兩本書,一本是拙作:
Arduino輕鬆入門:範例分析與實作設計
http://yehnan.blogspot.tw/2014/02/arduino_21.html
另一本是超圖解Arduino互動設計入門
http://yehnan.blogspot.tw/2013/04/arduinoarduino.html
也建議你找本C入門書,先看看C語言程式。
恩 那我知道了 我明天去圖書館看看有沒有 你的書我朋友有推薦過,說那本書好用 可是上次我借的時候書已經被借走了,其他的書我也去找找C語言的書是指基本C語法介紹嗎?式的話我明天去借來看 感謝您
Delete咳咳,買一本比較快。
Delete就是指C程式語言的入門書。
請問要如何使用紅外線控制R G Bled燈及閃爍,程式碼應該如何下手?
Delete我是新手
先試著控制RGB LED:Arduino練習:RGB LED,
Delete再試著以按鈕(開關)控制閃爍與否:Arduino練習:以開關切換LED是否閃爍,
再加上紅外線接收器,改由它控制:Arduino練習:紅外線傳送與接收。
前面兩種都試了 可是程式碼沒有註解 不曉得每行是在做什麼的
Delete有註解的版本嗎?
開關 按一次就換一種顏色,哪邊可以學習呢
Delete我並沒有使用奇怪的API吧,都是基本的Arduino核心函式。
Delete或許可參考拙作,註解多一點。
你要的功能「開關 按一次就換一種顏色」,我覺得應該可以自己寫寫看,
上述文章提供的內容已經差不多了不是嗎?再加上一個全域變數,儲存現在的狀態(顏色),按一下開關就換到下一個。
抱歉,我現在已經可以用按鈕控制RGB的燈了
Delete但什麼是全域變數,要怎麼打才能儲存現在的狀態!!!!
什麼是全域變數
Delete全域變數是從程式開始到結束都存在的變數,而且可被程式裡任何地方存取。
Delete全域變數不是Arduino的範疇,而是C程式語言的東西。
葉難前輩您好
ReplyDelete我想請問一下,最近在練習使用感測器,是電子羅盤"TDCM3"
他會回傳三筆資料,
我想要一次接受三筆資料到SERIAL MONITOR上做顯示
可是不知道該如何做讀取資料的動作
希望能請您指點一下該從哪方面下手
沒找到TDCM3的程式庫,所以應該要自己看TDCM3的datasheet、timing diagram(timing chart),自己寫程式與之溝通。
Deletegoogle 'TDCM3'找到的datasheet裡,滿清楚的,控制TDCM3的RX與RTS,便可設定模式,然後TDCM3會透過TX傳出資料。
記得序列介面兩端的腳位須跨接,也就是TDCM3的RX須接另一端的TX。
受益良多 感謝指導
Delete再請教一下 如果我要讀取從TX收到的資料 該用Serial.readBytes 還是用Serial.read呢
Delete不都是讀取嗎?
Delete但兩支函式的介面與行為不同,read若無資料,會回傳-1,呼叫readBytes須提供存放的地方,以及想讀取幾個bytes,可能會timeout。
請參閱Arduino官方文件http://arduino.cc/en/Serial/ReadBytes
請問我要如何在這程式碼 新增一個led燈 或開關?
ReplyDelete他是一直顯示 該功能不存在
以下是我修改過的程式碼
import processing.serial.*;
import ddf.minim.*;
import ddf.minim.analysis.*;
import cc.arduino.*;
Minim minim;
AudioPlayer song;
BeatDetect beat;
BeatListener bl;
Arduino arduino;
int ledPin = 12; // LED connected to digital pin 12
int ledPin2 = 8; // LED connected to digital pin 1
int ledPin3 = 2; // LED connected to digital pin 0
int ledPin4 = 4;
float kickSize, snareSize, hatSize , fuckSize;
void setup() {
size(800, 600, P3D);
minim = new Minim(this);
arduino = new Arduino(this, Arduino.list()[1], 57600);
song = minim.loadFile("aa.mp3", 2048);
song.play();
// a beat detection object that is FREQ_ENERGY mode that
// expects buffers the length of song's buffer size
// and samples captured at songs's sample rate
beat = new BeatDetect(song.bufferSize(), song.sampleRate());
// set the sensitivity to 300 milliseconds
// After a beat has been detected, the algorithm will wait for 300 milliseconds
// before allowing another beat to be reported. You can use this to dampen the
// algorithm if it is giving too many false-positives. The default value is 10,
// which is essentially no damping. If you try to set the sensitivity to a negative value,
// an error will be reported and it will be set to 10 instead.
beat.setSensitivity(100);
kickSize = snareSize = hatSize = fuckSize = 16;
// make a new beat listener, so that we won't miss any buffers for the analysis
bl = new BeatListener(beat, song);
textFont(createFont("Helvetica", 16));
textAlign(CENTER);
arduino.pinMode(ledPin, Arduino.OUTPUT);
arduino.pinMode(ledPin2, Arduino.OUTPUT);
arduino.pinMode(ledPin3, Arduino.OUTPUT);
arduino.pinMode(ledPin4, Arduino.OUTPUT);
}
void draw() {
background(0);
fill(255);
if(beat.isKick()) {
arduino.digitalWrite(ledPin, Arduino.HIGH); // set the LED on
kickSize = 32;
}
if(beat.isSnare()) {
arduino.digitalWrite(ledPin2, Arduino.HIGH); // set the LED on
snareSize = 32;
}
if(beat.isHat()) {
arduino.digitalWrite(ledPin3, Arduino.HIGH); // set the LED on
hatSize = 32;
}
if(beat.isFuck()) {
arduino.digitalWrite(ledPin4, Arduino.HIGH); // set the LED on
fuckSize = 32;
}
arduino.digitalWrite(ledPin, Arduino.LOW); // set the LED off
arduino.digitalWrite(ledPin2, Arduino.LOW); // set the LED off
arduino.digitalWrite(ledPin3, Arduino.LOW); // set the LED off
arduino.digitalWrite(ledPin4, Arduino.LOW);
textSize(kickSize);
text("KICK", width/4, height/2);
textSize(snareSize);
text("SNARE", width/2, height/2);
textSize(hatSize);
text("HAT", 3*width/4, height/2);
textSize(fuckSize);
text("FUCK", 5*width/2, height/3);
kickSize = constrain(kickSize * 0.95, 16, 32);
snareSize = constrain(snareSize * 0.95, 16, 32);
hatSize = constrain(hatSize * 0.95, 16, 32);
fuckSize = constrain(fuckSize * 0.95, 16, 32);
}
void stop() {
// always close Minim audio classes when you are finished with them
song.close();
// always stop Minim before exiting
minim.stop();
// this closes the sketch
super.stop();
}
int ledPin4 = 4; 這是我修改的LED燈
ReplyDelete應該不是「int ledPin4 = 4;」的問題,
Delete你的BeatListener在哪裡?沒有這個class的定義,當然無法編譯。
By the way, what is the error message?
不好意思,我是參考這個網站做法
ReplyDeletehttp://site.douban.com/110062/widget/notes/5348693/note/179163604/
無毒放心
執行時是利用這個Processing去執行的
所以我也不知道在哪裡....
那有沒有辦法讓他一直重複播放呢?
該網站的BeatListener在舊版的Processing的範例程式碼裡。
Delete葉老師您好
ReplyDelete小弟我想透過讀取SD卡裡面的程式碼 來控制LED燈
我先在SD卡裡面存取控制LED閃爍的程式碼,之後也在板子接上LED燈
執行之後Serial Monitor會顯示SD卡裡的程式碼
但似乎卻沒有回傳給LED燈,是不是還少打些甚麼呢?
以下是我從SD卡的ReadWrite範例去稍微修改的程式碼
#include
#include
const int chipSelect = 4;
File myFile;
void setup()
{
Serial.begin(9600);
while (!Serial) {
;
}
Serial.print("Initializing SD card...");
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
myFile = SD.open("song1.txt", FILE_READ);
myFile = SD.open("song1.txt");
while (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
//}
}
void loop()
{
// nothing happens after setup
}
若以一句話回答你的問題:「做不到」。你的程式就是從SD卡讀出檔案內容,輸出到Serial Monitor,如此而已,並不是執行該檔。
Delete進一步思考,放在SD卡裡的檔案若是編譯後的形式,那麼就需要進行燒錄,燒錄到Arduino的微控制器晶片的Flash裡,才能執行。若SD卡裡的檔案是原始碼形式,那就需要某種直譯器,讀取檔案並執行。
抱歉 小弟剛接觸Arduino不久,也沒有甚麼c語言的底子.....
ReplyDelete那在請問一下,
讓SD卡裡的檔案輸出到控制板上執行要怎麼寫呢?
把SD卡裡的程式檔案燒錄到Arduino裡不就好了?
Delete為什麼你想要這麼做?這並不是Arduino適合的使用情境。
另一種方式是
DeleteSD裡的文字檔案含有指令,由Arduino讀取後進行解析、然後執行。
那這種方式要怎麼寫呢
Delete能麻煩您寫個範例嗎
我說的這種方式,基本上已經類似於直譯器(interpreter)的形式,不過不必那麼龐大,只需實作控制Arduino腳位的指令即可。
Delete我說的這種方式應該不適用於你的情況。至於範例的話,最近恐怕沒空閒。
我覺得,您從PC透過PCI1751來傳輸資料、程式碼、控制FPGA,現在想把PC換掉,
暫時想到兩種途徑:
1. 保留PCI1751,那麼就須想辦法讓你的板子連接PCI1751,然後找出PCI1751的介面,原本從PC是如何控制PCI1751的,現在改由板子來做。
2. 拿掉PCI1751的話,讓板子直接連接FPGA,可是必須重新實現原本PCI1751負責的功能,一般板子都沒有那麼多TTL序列埠吧,若有的話,接下來必須查詢FPGA的控制介面,每個針腳/腳位的意義與功能,然後撰寫程式,該程式的功能應該就等同於原本PC端軟體的功能。
小弟我原本是用PC來控制FPGA,
ReplyDelete想用Arduino來取代PC,
然後用Arduino這邊的SD卡裡的檔案讓FPGA動作
請問你SD卡裡的檔案是什麼?執行檔?Arduino的程式原始碼檔?
Delete感覺你應該換用較高等的單板電腦,譬如Raspberry Pi、Beaglebone等。
FPGA的原始碼
ReplyDelete譬如小弟我Arduino這邊接個TFT螢幕,
之後我觸發螢幕上的按鍵讓SD卡輸出原始碼到FPGA,
來讓接在FPGA上的零件動作
原始碼?我似乎有部分誤會你的問題。
Delete那你原本PC與FPGA怎麼連接,現在Arduino與FPGA就該怎麼連接。
是靠序列埠介面嗎?
之前的程式碼Serial.write(myFile.read());是把檔案內容輸出到Serial Monitor,
現在也應差不多,但要輸出到與FPGA連接的序列埠。序列埠兩端必須設定相同的傳輸速率。
我也沒有把問題詮釋得很清楚.......
Delete原本PC是透過PCI1751與FPGA連接的
呃,根據產品網頁
Deletehttp://www.advantech.tw/products/1-2MLKCO/PCI-1751/mod_19D4BE9A-35C4-4AA9-B2D6-B7CDE68D60B5.aspx
PCI1751有48個TTL輸出入,Arduino並沒有那麼多,就算有也是以軟體模擬,不適合。
而且這麼多線路,你怎麼知道哪個線路負責什麼功能,要傳什麼資料?
FPGA板子有說明書、手冊嗎?
您好最近想做一個關於ARDUINO的專題研究
ReplyDelete有一些問題想請教您
有問題請留言,盡量回答。
DeleteThis comment has been removed by the author.
ReplyDeleteUTFT_Buttons_Bitmap_123.ino:33:38: error: conflicting declaration 'int reback'
DeleteUTFT_Buttons_Bitmap_123.ino:33:45: error: conflicting declaration 'int song1'
名稱重複宣告。
才剛PO完問題之後自己就找到了哪裡重複 所以刪掉了...
Delete可先看錯誤訊息,試著找出錯誤。
Delete請問一下,我最近想做一個智慧手環,想請問一下要買 arduino pro mini 還是 arduino nano 還是 arduino pro micro ? 這三者有何差異呢?
ReplyDelete呃,請自己看各產品的spec吧,
Deletehttp://arduino.cc/en/Main/ArduinoBoardProMini
http://arduino.cc/en/Main/arduinoBoardNano
https://www.sparkfun.com/products/12640
主要是比較價錢、微控制器晶片型號、運作電壓、有無內建USB轉序列傳輸功能、尺寸大小、等等。
謝謝回答(關於之前的問題)
ReplyDelete我再問一個問題:有沒有像這個網頁http://oszine.com/retroband/上的充電電池可以推薦呢?(如果可以的話請提供商品型號或網頁,不知道也沒關係)
話說我的問題我自己都看不到,是我眼殘還是電腦問題?