新書介紹

《碼上就會:Flash CS3動畫設計寶典》
圖解ActionScript 3.0程式設計入門

碼上就會:Dreamweaver CS3 PHP, MySQL & AJAX

作者:趙英傑
印刷:彩色
定價:590 元
頁數:472頁
教學簡報檔:有(請向書籍經銷商索取)

詳細目錄

[ 2008/02/12 更新] 使用ActionScript 3.0的Timer類別製作計時器
[ 2008/02/22 更新] 書籍勘誤表
[ 2008/03/12 更新] ActionScript 3.0裡的stage(舞台), root和MainTimeline(主時間軸)
[ 2008/04/16 更新] 自動輪流播放Flash的FLV視訊檔

線上購書:

本書特色:

  • 淺顯易懂的ActionScript 3.0入門教材。
  • 輕鬆易懂的教學範例,囊括多種Flash CS3動畫製作秘訣,自學或教學兩相宜。
  • 精彩動畫與詳盡的ActionScript 3.0互動應用程式圖解,讓您完全瞭解動畫實作技巧以及互動程式開發。
  • 實用互動程式範例包括:刮刮樂、物件配對、動態選單、隨機動態文字特效、MP3播放器、讀取XML文件與RSS閱讀器。

所有互動影片程式皆以ActionScript 3.0語法撰寫。

精心挑選多個包含重要觀念的互動影片,替您打好繼續深究複雜程式的基礎。這些實用的影片包括:問答題測驗(學習控制文字欄位和條件判斷敘述)、隨機文字特效特效影片(亂數和迴圈程式)、動態選單製作(控制「顯示物件」與載入外部影片)、RSS閱讀器(解析XML文件與物件導向程式設計基礎)、刮刮樂影片(動態遮色片與程式繪圖)、MP3播放器(控制並載入聲音檔)、Google搜尋表單(網路連線)、拖放物件(物件配對)…等等。

底下是取自本書其中六頁的畫面,包含採用圖說解釋ActionScript 3.0語法以及應用程式架構(直接點圖可放大)。

   

  

 

《碼上就會:Dreamweaver CS3 PHP、MySQL與AJAX》

碼上就會:Dreamweaver CS3 PHP, MySQL & AJAX

作者:趙英傑
印刷:彩色
定價:620 元

詳細目錄

[ 2007/08/06 更新] 書籍勘誤表
[ 2007/08/04 更新] 使用MAMP在Mac OS X上安裝Apache、MySQL與PHP
[ 2008/01/21 更新] 使用PHP程式一次上傳多個檔案
[ 2008/04/29 更新] 設定FCKeditor,讓使用者上傳檔案到自己的目錄

線上購書:

本書特色:

  • 簡單易懂的生動圖解說明PHP與SQL語法,及應用程式的執行架構。
  • 使用Dreamweaver視覺化編輯工具,輕鬆建立PHP + MySQL與AJAX應用程式。

目前佔有率最高的開放原始碼Apache網站伺服器,加上超人氣的MySQL資料庫與PHP程式語言,這個簡稱AMP(取自Apache, MySQL與PHP的首字母)的金三角組合,是今日許多網站的重要基石。

Dreamweaver則是目前在專業市場領域,最受設計師喜愛的網頁編輯工具。除了原本優異的CSS樣式編輯功能,以及包含PHP在內的視覺化伺服器端程式建置能力之外,CS3版本更加入了Spry AJAX框架——一組能大幅簡化開發人員建立AJAX網頁的程式庫,讓使用者透過簡單的幾個HTML標記設定,就能完成具備AJAX機制的互動網頁。

本書採用大量的圖解說明PHP與SQL的基本語法以及應用程式的執行架構,讓讀者在享受Dreamweaver視覺化編輯工具輕鬆建立PHP應用程式的同時,也能瞭解其背後的運作原理,打好繼續深究複雜程式的基礎。

底下是取自本書其中六頁的畫面,包含採用圖說解釋SQL語法、PHP程式指令、Cookie以及應用程式架構的頁面(直接點圖可放大)。

   

  

 

碼上就會Ruby On Rails

書名《碼上就會:Rails敏捷開發網站(Agile Web Development with Rails)》
翻譯:趙英傑、涂穎芳、張穎
定價:600元
出版:碁峰資訊股份有限公司
線上購書

假如你需要在短時間內完成一個高品質、美觀的Web應用程式,且該網站需要持續維護多年。

如果你也想在網站中採用AJAX之類的功能,讓網站反應迅速且更易於使用。此外,你也想要採用REST技術,讓web應用程式更容易和其他應用程式互動。

Ruby on Rails就是你正在找尋的技術。

Rails是個全功能的MVC網站框架(framework),幫助您建立高度結構化的應用程式。您專注於撰寫應用程式,而Rails將幫您打理好其他的工作。您甚至不必撰寫一行JavaScript程式碼,就能製作出包含JavaScript的應用程式。

本書全部重新改寫自獲獎(2006 Jolt Awards)的第一版本,包含Rails 1.2的新功能。透過這本書,您將能:

  • 撰寫出網路書店應用程式;
  • 瞭解Rails如何免除繁瑣的設定步驟以及應用程式的撰寫過程;
  • 瞭解如何使用Rails程式碼產生器;
  • 看看如何在應用程式中加入AJAX、REST、Web Service以及e-mail處理程式;
  • 透過內建的單元(unit)、函數以及整合測試框架,在開發過程中測試應用程式;
  • 簡易且安全地部署您的應用程式。

本書的作者瞭解Ruby,也瞭解Rails,作者群簡介:

  • Dave Thomas是Agile Manifesto以及Programming Ruby書籍的共同作者,他瞭解敏捷(agile)開發與Ruby,此外,身為積極的Rails開發者,他也瞭解Rails。
  • David Heinemeier Hansson是Rails框架的創作者。
  • Leon Breedt撰寫了Rails的web service元件。
  • Mike Clark是國際Rails講師以及測試技術的專家。
  • James Duncan Davidson管理許多Rails應用程式,並且巡迴世界各地演說Rails開發主題。
  • Justin Gehtland參與培訓AJAX, Web 2.0及Rails開發課程。
  • Andreas Schwarz撰寫了線上Rails安全手冊。

188 thoughts on “新書介紹

  1. 趙老師您好:

    我才剛學Flash一個多月, 有計畫之後要考ACA國際認證, 所以去書局找書來加強學習速度, 在書局買到您的ACA國際認證 Flash CS5這本新書。

    想請教一下的是, 我上網站看到目前的認證考試是CS3版本, 如果我是用您的Flash CS5這本書學習的話, 不知道內容跟ACA Flash CS3的考試能不能相通呢?有哪些地方我必須回頭看CS3版本的內容?

    還是說快要有ACA Flash CS5了?
    如果是這樣就最好囉:lol:

  2. hi sakay:

    我幾個月前看到的是CS5英文版考題,照理說中文版考題應該已經上線了,如果還沒有請再等一陣子,很快就會有Flash, Dreamweaver和Photoshop的中文考題。

    Merry Christmas!
    jeffrey

  3. 《超圖解Arduino互動設計入門》動手做17-1,出現下列訊息。請問那裡出錯了?要如何處理?

    —————————————————————————————————————————————–
    ** Arduino ** 連線到 127.0.0.1:5331 . . .
    ** Arduino ** 連線失敗!
    Error #2044: 未處理的 securityError:。 text=Error #2048: 執行程序安全性違規:file:///C|/Users/ccworker/Desktop/fun/test.swf 無法從 127.0.0.1:5331 載入資料。
    at org.p43d.arduino::Arduino/connect()
    at test_fla::MainTimeline/frame1()
    ——————————————————————————————————————————————————–

    1. 您好:

      這個錯誤應該是Flash的安全性限制所導致,請選擇「檔案→發佈設定」,在”Flash”標籤頁底下,有一個「本機播放安全」設定,請選擇「只存取網路」試試看(或者,發佈成.exe檔)。

      thanks,
      jeffrey

  4. Dear Sir,

    已選擇「只存取網路」,

    1. 執行test.exe,看不到”輸出視窗”的訊。

    2. 執行Crtl+Enter,還是如下的訊息:

    ** Arduino ** 連線到 127.0.0.1:5331 . . .
    ** Arduino ** 連線失敗!
    Error #2044: 未處理的 securityError:。 text=Error #2048: 執行程序安全性違規:file:///L|/My%20Documents/course%2D102%2D1/ch17/diy17%5F1/FUN/test.swf 無法從 127.0.0.1:5331 載入資料。
    at org.p43d.arduino::Arduino/connect()
    at test_fla::MainTimeline/frame1()

    不知那裡出錯了?敬請協助。

    謝謝!

  5. 老師好
    在下正準備購買和書中所說的duemilanove 不過不好找
    店家買due, uno,請問老師買due,uno,mega可以適用您的書嗎?
    謝謝您

    1. 感謝分享!

      廣義而言,每個Arduino板子都行,只是以書本的練習來說,採用ATmega328處理器的板子,價格比較低廉。

      thanks,
      jeffrey

  6. 老師好
    在下開始實作UNO R3的版子
    請問在外接電力的選擇上就電力持久性和穩定度而言
    下列兩種方案何者為優呢?
    A.1.5V充電電池(每顆2,200mAh)*6顆串連=9v
    B.9V鈕扣電池1顆

    不好意思問了外行問題
    謝謝您

    祝 順心

    1. 充電電池是1.2V,請串連四個(4.8V)接USB埠。我不知道9V電池的毫安數,但是一定小於充電電池。

      have fun!
      jeffrey

  7. 老師好
    謝謝回覆
    在下會問這個問題是因為
    您的書上2-7頁提到
    arduino版上(在下是unoR3)有一電壓調節元件可以把輸入的直流電轉換成5v,至少需要輸入6v或7v以上才能運作

    而在下目前計畫做成gsm傳送資料到外界且沒有插座,所以必須使用電池供電
    希望能有一個長時間的電源供應
    才會想到是否使用高電量的充電電池1.2v*6顆=7.2v (2,200mAh*6=14,400mAh)會比比1.2v*4顆=4.8v (2,200mAh*4=8,800mAh)能夠支撐的時間更久?
    也就是想請問老師 可以用6顆的方式來拉長供電或者還是以您建議的4.8v來提供給uno電源供應會比較好?

    UNO的類比輸入參考電壓0-5v 但是在下想讀取的設備輸出電壓-11〜+11v 請問有其他的作法嗎? 感謝

    不好意思
    問了一些很基本的事情

    祝 萬事順心

    1. UNO板子本身大約消耗50mA的電流,以一個9V鹼性電池(450mAh)供電的話,約莫可連續運作9小時。

      2-7頁提到的電源in腳,至少需要7V以上才能運作,但是USB埠接的是5V電源。

      電池串聯時,電壓增加、電流量不變,所以串聯4個1.2V電池,仍是2,200mAh;若將電池並聯,電壓不變,電流量增加,但不建議電池並聯使用,因為每個電池的參數(如:電壓值)不可能完全一致,並接在一起時,高電位會流向低電位,造成另一個電池的負擔,容易損壞。

      若要增長運作時間,除了加大電源容量之外,還有兩種方式:

      1. 讓Arduino進入休眠(sleep)狀態,就像電腦或手機,不需要它的時候,讓它暫時關閉系統,可以節省許多電力。我本週日再整理一篇相關的說明。

      2. 使用低電壓、低時脈的Arduino。就像人類一樣,全力衝刺時需要耗費較多的體力和能量,跑不遠;慢慢走,消耗的體力少,也走的也比較長久。市面上可以買到3.3V, 8MHz的Arduino Pro MIni板。

      至於-11v~11v的類比輸入電壓,超過Arduino所能承受的範圍,需要透過額外的介面電路轉換成0~5V(但是此舉也會降低精確度),我目前沒有想法。

      thanks,
      jeffrey

  8. 趙先生您好,我是你超圖解Arduino互動設計入門的讀者,在你書中最後一頁D-2裡的調整交流電的輸出功率中,可以請問其中裡面的H11AA11零交越感測元件台灣哪裡有賣嗎?我跑了四家電子材料行都沒找到@@,很多老闆也都不知道那是甚麼,GOOGLE找到的都是在大陸那邊ORZ,還請您解答,謝謝。

    1. hi allen:

      我之前是跟露天網拍的一個賣家購買的,真不好意思,剛剛我也搜不到有賣家在賣了。再麻煩您組裝第二個電路測試,謝謝!

      thanks,
      jeffrey

  9. 趙老師您好:

    我是今天買到的讀者。
    謝謝你寫了一本很棒很棒的入門書,給沒有太多實做基礎的人來體驗Arduino帶來的實做樂趣。

    這邊有一個小問題想請教:

    在動手做3-1的LED閃爍燈裡頭,如果我把led燈,改接成10元店買的laser pointer(紅色,三顆水銀電池約4.5Volt ,pin=13),會發現過電後,雷射筆亮都不會亮,而且同時UNO板上pin13的LED燈閃爍會變得很微弱且不穩定。

    請問,如果我要使用雷射筆來取代LED燈,是不是有簡單可行的辦法呢?
    又,如果我想要讓閃爍的亮點,是比較大電流的綠光雷射筆(5mW),請問我是不是有其他要注意的地方呢?

    謝謝您

    1. 接雷射二極體或其他零件之前,首先要確認它的工作電壓和工作電流。我在ebay網拍上稍微查了一下,同樣是5mW,不同零件的規格差異還不小。

      這個賣家的雷射二極體為例,強調「低工作電流」,一般約20mA(即:0.02A),最大約25mA;工作電壓則介於2.2V~2.5V之間,跟普通的LED差不多。

      若套用書本4-31頁的歐姆定律算式,連接此雷射二極體的電阻可選用約100Ω~220Ω的阻值來測試:

      (5V – 2.2V) / 0.02A = 140Ω

      另有一個賣家的雷射二極體規格描述就比較籠統:

      Laser wavelength(雷射波長): 650nm(紅色)
      Light power(光線功率): <5mW
      Supply Voltage(工作電壓): 3VDC
      Operating Current(工作電流): <40mA

      跟電子材料行購買之前,務必要跟店家索取規格表。

      have fun!
      jeffrey

  10. 老師您好:
    我是你Arduino互動設計入門的讀者,最近在做你書中最後面的交流調光器電路,我使用的是UNO版,插的電器式電風扇,是用你書中4N25的電路圖,之前因為在兜好電路後,把ARDUINO接上電腦打上CODE,出現avrdude stk500_getsync() not in sync resp=0x00,後來想說先通電後再解決CODE問題,結果通上110V後UNO版直接燒毀,現在avrdude stk500_getsync() not in sync resp=0x00的問題已經解決了,再猶豫是否要再放一個UNO版下去測試,似乎這電路和CODE只要一出錯UNO板就會直接燒毀?還是依老師的經驗CODE錯誤再通110V不會直接燒毀UNO版?另外我找到這個網站http://www.instructables.com/id/Arduino-controlled-light-dimmer-The-circuit/,之前因為找不到H11AA11的原件而使用4N25電路,但是那個網站他使用的是H11AA1(這種的電子材料行找的到),但H11AA1的DATASHEET又和你書中D-13長得不一樣,所以是否是那個網站寫錯了呢?

    謝謝您

    1. hi 濱:

      真是糗大啦~仔細看了一下我之前焊接的電路板,那個零交越檢測元件的型號確實是H11AA1,是我一直記錯了。

      零交越感測元件

      電路圖H11AA1元件裡的LED應標示成兩個反向並列的LED,代表允許正負方向的交流訊號通過,我偷懶只畫一個。

      如果您不嫌棄,我手邊有一組麵包板Arduino電子零件:

      1. 已燒錄bootloader的ATmega328
      2. 16MHz石英震盪器
      3. 22pF電容 x 2
      4. 10KΩ電阻 x 1

      請將您的聯絡方式與地址寄到我的電子郵箱:cubie@yahoo.com
      我會在收到訊息的隔日將上述零件寄送給您。

      測試TRIAC交流相位控制電路時,建議先用小瓦數的裝置測試,像20W鎢絲燈泡。

      thanks!
      jeffrey

  11. 老師您好:
    我是你ARDUINO互動設計的讀者,最近在做你D-12調光器電路的實驗,發現D-13頁中4N25的1和2角位和4N25的datasheet寫反了,如果按照書中的接法,電流會直接灌入arduino版中使板子燒壞。另外在D13頁中LED燈的那個迴圈,180歐姆是否要改成1K歐姆呢?因為你D14頁中的範例圖是使用1K歐姆。另外D10中有提到此電路不適用LED節能燈泡,是為什麼呢?

    1. 感謝指正!1, 2腳的確是標反了,因為它是光耦合元件,右邊的交流電和左邊的直流電被隔離開來,右邊的電流並不會灌入Arduino。

      接MOC3020M第一腳的電阻是它內部LED的限流電阻,我板子上焊接的是1KΩ電阻,後來想想,跟外部的LED一樣用470Ω電阻或330Ω就好了,180Ω其實也可以,我會再修改電路圖,非常感謝!

      不適用LED節能燈泡的原因是,節能燈泡內部有LED驅動電路,在電壓不足時就停止運作,因此接上這個相位控制電路,應該只會讓它開開關關地閃爍。

      thanks,
      jeffrey

    2. 老師你好:我是購買此書的讀者,有一部份電路與你請教,關於 D-13 MOC3020M 180歐牳 2.4K歐牳,如何計算出來,0.01uf (103)你書本上說要用到耐壓到400V ,當負載使用110V,我要控制輸出 220V,我手頭有一個鎢絲燈泡
      200W (220V),不知你這個電路可以直接用上?

    3. hi jxchen:

      電阻值是依照MOC3020M元件規格書,第5頁最底部的建議電路,許多電子零組件的規格書,都有提供應用範例。

      根據BTA12-600B的規格書指出,此TRIAC元件的耐電流是12A。220V,200W燈泡的電流大約是0.9A,所以應該不成問題。電容器的耐電壓用400V也沒問題。

      thanks,
      jeffrey

  12. 老師您好:

    我按的12-9頁所說,
    在Ken Shirriff先生網站裡下載了IRremote的程式庫。
    卻發現執行12-10裡的IRrecvDemo有無法編譯的情形(錯誤訊息如下:

    Arduino: 1.5.4 (Windows 7), Board: “Arduino Uno”

    C:\Program Files (x86)\Arduino\libraries\RobotIRremote\IRremoteTools.cpp:5: error: ‘TKD2’ was not declared in this scope

    無法使用這個程式庫,會造成相當大的困擾。
    請問我是不是哪裡出錯了?

    不好意思打擾了
    謝謝您的幫忙!

    1. 老師您好:

      我使用光碟裡面附的IRremote,並且把他copy到Arduino 的library 中。可是依然出現同樣的錯誤訊息如下:

      Arduino: 1.5.4 (Windows 7), Board: “Arduino Uno”

      C:\Program Files (x86)\Arduino\libraries\RobotIRremote\IRremoteTools.cpp:5: error: ‘TKD2’ was not declared in this scope

      這會不會是因為版本的問題?

      ps我使用的是Arduino 1.5.4版?

      ihong

    2. 有可能,我用1.0.5版編譯光碟裡的IRrecvDump和IRtest,都沒問題。
      感謝告知!

      thanks,
      jeffrey

    3. 老師你好:感謝你的回覆,我有個疑問能否幫忙
      1.BTA12-600V TRIAC 不是有 G(閘極), A2(第二陽極),A1(第一陽極)
      能讓正反向電流通過,A1,A2可以反接沒有方向性,不管我燈泡兩個接點,其中一點接A2,或A1都沒差別?

    4. 對,因為交流電的訊號就是會正負交替變化,所以A1, A2沒有方向性。

      thanks,
      jeffrey

  13. 老師您好 請問要怎麼解決Arduino燒錄時和電腦不同步的問題呢?
    我的板子是用Motduino 電腦做誒系統是Win8

    1. hi Liang:

      我手邊沒有Motoduino,也不是用Win8,請問錯誤訊息的內容是什麼?

      thanks,
      jeffrey

  14. 書中8-6 LED矩陣逐字捲動效果程式
    裡面光碟檔的程式 燒入進Arduino後似乎沒有”字體顯示”(Arduino ),
    用Serial.println()找問題似乎發現 fonts[chr][j] 的chr 無正確轉換成 數字,
    用fonts[65][j] 則可以 正常顯示(A的文字),或用其餘數字頂替皆能正常顯示該ASCII的文字
    不知這問題要如何處理?

    8-8的常數保存記憶體可正常執行

    另外8-10頁的矩陣LED燈 似乎是共陽電路圖,非共陰,共陰接法在8-15頁似乎要要換..若有錯誤請指證
    感謝。

    1. 老師你好:
      問題一:有個問題要與你請教,上網下載MOC3020M,他說IF順向電流最大不能超過30ma,我 io輸出電壓 high voltage=3.3v時,如果設計我只要電流流過 TRIAC 陽極 LED 只有 2ma,不知可不可以動作
      問題二,如果要貼圖片上來,要如何上傳

    2. 這我不確定,建議先用規格書給定的示範電路,用110V小功率的裝置測試無誤後,再依照你的想法修改電路。我沒有開放上傳照片,你可以用免費影像寄存網站,例如flikr.com上傳照片,再貼上連結即可。

      thanks,
      jeffrey

    3. 老師你好:
      感謝你的快速回覆

      我有個問題想問關於 D-13 H111A1 在發射端陽極端擬串一顆電阻 33K歐姆 1/2W,目的為了限制電流量,如果經過計算
      110 -VF(1.15V)/33K=3.29ma,但是電壓高不會讓 LED 燒掉?
      能否幫忙解疑惑 感謝 ~~~~

  15. 老師,我移除1.5.4版後重新安裝1.0.5版本,可以正常使用了。謝謝您的幫忙

    Regards,
    Ihong

  16. 謝謝,我收到如何檢測字串更新訊息了。
    很多以前自學電子電路中囫圇吞棗的資訊,終於能逐一化開。
    很感謝老師您的回覆,再次感謝。

  17. 老師您好:
    我有實做過你的[arduino互動設計入門]一書D-12頁的交流電調光器電路,目前H11AA1和4N25的兩種電路和TimerOne的方法都測試過了,可是遇到了一個問題,不知道老師做這部分時有沒有碰到過,就是燈泡只有在打開電源的一瞬間亮了一下,其他時候都沒反應,以上三種方法都是一樣的狀況,還請教老師您的意見?

    1. hi 濱:

      我想是TRIAC沒被觸發,請嘗試將MOC3020M第1腳的1KΩ限流電阻換成470Ω或更低的阻值,再測試看看。

      thanks,
      jeffrey

  18. 老師您好:
    我已經試過囉,MOC3020的第一腳位電阻有用470歐姆和180歐姆的下去跑,還是一樣的結果,請問我還要嘗試更低的電阻值嗎?或是第一腳位可以直接短路。另外連接在MOC3020的1和2腳位間的LED燈是有甚麼用途呢?在尚未開啟交流店源前,LED燈是不亮的,開啟交流電源後,LED燈就會亮起來,此時燈泡也會閃一下,之後即使關掉交流電源後,LED燈也是保持在常亮的狀態,請問那樣是正常的嗎?一直麻煩老師您真的是非常抱歉。謝謝:)

    1. 那個LED充當訊號監測用,它直接與PWM腳相連,所以它的亮度會隨著PWM訊號而改變明暗度;也就是隨著AC燈泡的亮度變化。

      如果LED會隨著可變電阻產生明暗的變化,那就表示程式沒問題,如果LED燈光沒變化,請改接Arduino的數位5, 6, 9, 10或11任一腳,並修改程式PWM的輸出腳位試試看。

      另外,如果你手邊有類比式電錶,請參閱這位大大的說明,測試TRIAC是否正常

      thanks,
      jeffrey

  19. 老師您好,5.6.9.10.11腳位都測試過了,一樣是在開關AC電源的時候閃一下就沒亮了,TRIAC測試沒問題,ARDUINO的2號腳位0中斷也測試過了所以應該不是板子那邊的問題,請問是否有可能因為電流不足導致TRIAC無法運作呢?請問老師當初焊在PCB上的電路是否可以拍板子背面的圖借我參考呢?謝謝老師:)

    1. 這…真傷腦筋~我試做的TRIAC調光器真的可以用,這是PCB板的背面:

      AC調光器電路板的背面

      thanks,
      jeffrey

    1. 哦~不會的,你也可以像這個老外一樣,在H11AA1元件的1, 2腳,各串接一個33K電阻。

      一般的LED最大逆向電壓只能承受5V(參閱2-18頁的表2-2),接110V肯定燒毀。

      have fun!
      jeffrey

  20. 老師感謝你的幫忙,但是H11AA1第二腳我沒串電阻但是光電晶體接收端輸出都正常,那原因為何

  21. 哈囉趙老師:

    我是「超圖解arduino互動設計入門」的讀者
    想請問一個關於DHT11 溫濕度感測器的問題!!

    溫濕度是隨環境而漸進變化的
    為什麼pin腳是數位腳位而非類比腳位呢??

    謝謝您!

    Frances

    1. hi frances:

      妳可以在此下載DHT11的簡體中文規格書,其中的「產品概述」單元有提到「传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。」

      也就是說,DHT11的輸出訊號已經預先透過它內部的微控器處理過了,因此是數位訊號。

      thanks,
      jeffrey

  22. 趙老師您好, 雖然超圖解第二版沒有寫到七段顯示器連接max7219, 但我在網路上找到控制方法, 在0.56″的七段顯示器可以正常控制, 成功後我再試 1.8inch的共陰七段顯示器, 雖然可以正常控制但亮度很暗, 不曉得老師能不能教我一下, 麻煩老師了謝謝!!

    1. hi kenny:

      根據這個廠商的資料指出,1.8吋(45mm)的共陰極七節紅色LED,每一節的消耗電流是30mA。

      MAX7219每一節最大可輸出40mA。請參閱8-16頁上的MAX7219限流電阻表,書中的電路範例是接24KΩ,請嘗試15KΩ(棕綠橙)。

      thanks,
      jeffrey

    2. 不行耶!! 狀況一樣.

      我用的是這一個 1.8 inch 7 segment
      型號: LS1805SRDK

      是不是要使用書本上10-37的方式來放大電流, 電晶體要選 2N2222 嗎?
      還望老師指導, 謝謝!!

    3. 你選用的七節LED顯示器,每一節的順向電流(If)是30mA;順向電壓(Vf)是2V,根據8-16頁上的MAX7219限流電阻表,應該要接17.1KΩ。你可以選用阻抗稍微大一點的電阻,例如18KΩ(或者先接回24KΩ),因為這個電阻的作用是限制MAX7219的輸出電流,同時也保護IC不會燒毀。

      假設七節LED裡的8個LED全亮,再加上MAX7219本身的消耗電流,總共是 8 × 30mA + 10mA = 250mA。

      請問你有將MAX7219的電源外接獨立的5V嗎?你可以將Arduino板和LED電路連接1A以上的USB電源再測試看看,我認為不需要額外的電晶體來驅動LED。

      thanks,
      jeffrey

    4. 接外部電源就可以了, 謝謝老師!!

      P.S. 不過 DP 腳要串兩個紅色LED, 不然就是不接DP腳, 才不會影響亮度.

  23. 請教老師一個問題,謝謝。
    我想利用 Arduino 來控制多個 LED ( 8 × 4 排 = 32個,每個 led 是分散在不同地方)…,依「超圖解 Arduino 2互動設計入門」有介紹 74HC595 IC,請問他可以做得到嗎?

    又第 8-10 中第六行提到:「實際上,我們也能依據此電路用數十個單一 LED 組裝成矩陣」…,是否就能解決我的問題?

    另該頁第八行:「第四章介紹的74HC595」中,是否為:第「七」章介紹的…之筆誤?

    請指教,謝謝。

  24. 我是「超圖解arduino互動設計入門」的讀者
    請問 DHT11 library 有附在光碟中,但是課本第 9-22 9-23 頁程式卻為 #include <dht11.h> 感測器程式庫
    請問 #include <dht11.h> 是小寫而 光碟中DHT11 library是大寫,為什麼?
    我是初學者, c語言不是大小寫有別嗎?

    謝謝 請教老師

    1. hi tony:

      程式庫的資料夾大小寫沒有關係,它只會影響到Arduino軟體開發工具的選項名稱:

      它真正在意的是資料夾裡的.h檔名,DHT11路徑底下的程式庫名稱是小寫:dht11.h

      thanks,
      jeffrey

  25. 趙老師您好:
    最近我用Arduino互動設計入門第2版,第十六章diy16_4.ino的程式上傳至arduino2560的板子,程式可以正常的運做,
    但是當我將usb拔出再插入就不能運作,我查 連ping 網卡的ip都ping不到,不知道老師您知道這是什麼問題嗎?

    1. hi 小廖:

      我在Arduino 2560上測試,第一次用外接電源也沒問題,斷電後再通電,以太網卡也是沒有運作,但按一下以太網卡上的Reset鍵就好了。

      thanks,
      jeffrey

  26. 趙老師您好

    我參閱您arduino互動設計入門書上的變頻控制LED燈光和馬達中講到atoi()的內容,實作了10-13頁的程式,動作都很正常,但是有一點小小的疑問,關於程式碼中if (chr >= ‘0’ && chr <= '9' && i<3)這一句前段是判斷輸入的字元是否在0到9之間,後段是i<3是確保只讀取前三個字,但是我把判斷0到9的程式碼刪除,僅留下i<3,run下去後發現變成只能轉換出第一個字元,例如說我在serial輸入123轉換出來只有1一個數值,這是為什麼呢?判斷0到9的程式碼刪除應該是不會影響轉換的位元阿~謝謝!!

  27. 趙老師你好~我照Arduino互動書上CH-14的範例,結合CH-11的servo控制寫出以下程式碼,若拆開可單獨運行,但合在一起DC motor 就不動了…只剩servo可動~求問!!!是需要另接電容或電阻之類的嘛?(ps編譯沒問題)
    #include
    #include
    const int BIA = 10;
    const int BIB = 6;
    byte speed = 100;
    char readString;
    Servo myservo;
    SoftwareSerial BT(4,5);

    void setup() {
    pinMode(BIA, OUTPUT);
    pinMode(BIB, OUTPUT);
    BT.begin(9600);

    myservo.attach(9);
    myservo.write(0);
    stop();
    }
    void loop() {
    if(BT.available() >0)
    {
    readString = BT.read();
    switch(readString)
    {
    case’a’ :servo30();break;
    case’b’ :servo60() ;break;
    case’f’ : forward();break;

    }
    }
    }
    void forward()
    {
    analogWrite(BIA, speed);
    analogWrite(BIB, 0);
    }
    void stop()
    {
    analogWrite(BIA,0);
    analogWrite(BIB, 0);
    }
    void servo30()
    {
    myservo.write(30);
    }
    void servo60()
    {
    myservo.write(60);
    }

    1. 老師你好~我是使用交流電源轉換器插插座接UNO板,馬達沒有外接電源……所以問題是出在馬達囉?(過幾天去買外接電源)

  28. 趙老師你好~我馬達外接電源後,馬達模組的燈有亮,接地線也有與Arduino版的接地相連
    ,但透過藍芽仍然只能控制servo做轉向,而直流馬達沒反應…請問是哪裡出錯了嗎?

    1. hi ted:

      我指的Arduino控制板和馬達,與外部電源的連線方式大致如下(馬達的電源端子,請焊接一個100nF的電容):

      馬達控制板電源

      thanks,
      jeffrey

  29. 請問趙老師
    我根據您的arduino互動設計入門第二版中14-2的動手做
    用B型的L298n板子與HC-05藍芽模組
    為什麼藍芽連接上後操作沒有反應
    但是藍芽的燈倒是從未連接時的閃爍變成長亮
    操作時有另一顆燈會閃爍
    是我哪裡有問題嗎??
    請老師指點
    線路應該都接對 我已經接到都背起來了
    謝謝老師

    1. hi gary:

      你可以先將藍牙模組的RxD和TxD相接,通電之後,使用電腦(如:AccessPort軟體)連上藍牙模組。如果連線無誤,你在電腦上傳給藍牙的訊息,將會被轉送回來。

      thanks,
      jeffrey

  30. 老師 你好,我想請問一下arduino的問題
    如果從 串列中得到一筆長串資料
    如10001A10010B11100C
    我該如何把他們 分成 char1[]={10001,10010, 11100};
    char2[]= { A , B, C};
    等這兩筆資料呢~
    我有試過 substring toCharArray 這幾個 不過因型態問題轉不過來,謝謝老師

    1. hi 小猴:

      你的原始字串資料中間有空格或者其他分隔字元嗎?
      char1陣列是數字類型,cha2陣列是字元類型嗎?

      thanks,
      jeffrey

    2. 是的老師!

      我char1 要數字類型 char2要字元類型 原始字串陣列 我應該可以修改程中間加入空格或者其他分隔字元看看

    3. 我把問題簡化,假設有一組逗號分隔的字串資料:

      char str[] = “123A,456B,789D”;

      程式要將它分割成三個子字串,並分別存放數字和字元部份:

      C語言提供一個叫做strtok()的字串切割函式(註:其原意為string tokenizer),用它來切割以逗號分隔的str字串的寫法如下(註:另請參閱「取出藍牙訊號強度值」的留言):

      執行時,strtok將開始搜尋str字串裡的’,’(逗號)字元,如果找到了,它將傳回第一個分割的部份(”123A”),因此,pt將指向”123A”。
      若要繼續處理相同字串的其他分割部份,我們需要再此執行strok(),第一個參數要設定成NULL

      執行之後,pt將指向”456B”。程式需要反覆執行這個敘述,直到取出所有分割部份為止。
      分割字串的Arduino程式如下:

      char str[] = "123A,456B,789D";  // 原始資料
      char letter[3];  // 儲存英文字元
      int num[3] ;     // 儲存數字值
      
      void setup() {
        Serial.begin(9600);
        
        char *pt;           // 子字串的指標
        char *substr[3]; // 儲存分割後的子字串
        
        pt = strtok(str, ",");
        int i = 0;
        while (pt != NULL) {
          substr[i++] = pt;
          pt = strtok (NULL, ",");
        }
      }
      
      void loop() {
        // 這裡沒有程式碼
      }
      

      程式碼執行後,substr陣列將存放”123A”, “456B”和”789D”三個元素。因此,我們可以再執行一個迴圈取出這些元素的數字和字母,例如:

      char str[] = "123A,456B,789D";
      char letter[3];  // 儲存英文字元
      int num[3];     // 儲存數字值
      
      void setup() {
        Serial.begin(9600);
        
        char *pt;        // 子字串的指標
        char *substr[3]; // 儲存分割後的子字串
        
        pt = strtok(str, ",");
        int i = 0;
        while (pt != NULL) {
          substr[i++] = pt;
          pt = strtok (NULL, ",");
        }
        
        for (i = 0; i < 3; i++) {
          // 將子字串轉成數字(子字串結尾的字母將被忽略)
          int temp = atoi(substr[i]);
          
          num[i] = temp;
          
          Serial.print("number: ");
          Serial.println(num[i]);
          // 取出子字串最後一個字元(英文字母,索引為3),存入letter陣列。
          letter[i] = substr[i][3];
          
          Serial.print("letter: ");
          Serial.println(letter[i]); 
        }
      }
      
      void loop() {
        // 這裡沒有程式碼
      }
      

      上面的while()迴圈敘述,可以用for迴圈改寫成:

       for (char *pt = strtok(str,","); pt != NULL; pt = strtok(NULL, ",")) {
        	substr[i++] = pt;
       }
      

      其實暫存分割後的子字串的substr陣列也可以省略,所以程式碼可以改寫成只用一個for迴圈達成:

      char str[] = "123A,456B,789D";
      char letter[3];  // 儲存英文字元
      int num[3];     // 儲存數字值
      
      void setup() {
        Serial.begin(9600);
        
        char *pt;
        char *substr[3];
        int i = 0;
        
        for (char *pt = strtok(str,","); pt != NULL; pt = strtok(NULL, ",")) {
             // 用pt代替substr
          int temp = atoi(pt);
          
          num[i] = temp;
          
          Serial.print("number: ");
          Serial.println(num[i]);
             // 取出字母
          letter[i] = pt[3];
          
          Serial.print("letter: ");
          Serial.println(letter[i]);
          i++;
        }
      }
      
      void loop() {
        // 這裡沒有程式碼
      }
      

      大致上就是這樣…

      have fun!
      jeffrey

  31. 您好,書籍「超圖解Arduino互動設計入門(第2版)第16-2頁,Ethernet我覺得應該正名為「乙太」網路而非「以太」網路,供您參考!

    1. hi 小鰻:

      沒錯!!本書第一版是將Ethernet譯作「乙太」,但某天經某個朋友「指正」,我也沒有仔細查證,第二版就全改成「以太」。後來編輯簡體中文版書籍時發現,「以太」是簡體中文的譯名…

      thanks!
      jeffrey

  32. Jeffrey您好

    想跟您請教一下,
    我現在使用書裡附的webduino Library搭配Arduino IDE 1.6.4
    但是在編譯時發生
    WebServer.h:192:21: error: ‘prog_uchar’ does not name a type
    void printP(const prog_uchar *str);

    請問您是否有遇過這個問題?
    是不是Webduino Library不再支援現在的IDE了?
    謝謝

  33. 趙老師
    我用的板子 是 UNO R3

    按照你的書上 所寫 的燒入 開幾檔 方法
    出現 avrdude: Yikes! Invalid device signature.
    Double check connections and try again, or use -F to override
    this check.

    我買的新ic ATMEGA328p-pu
    跟版上的是一樣的ic

    發展程式 1.0.3 你書上給的
    我也有1.5.8 但是他沒有 ATMEGA328p-pu 這ic
    所以用1.0.3燒開機黨

    1. hi 源源:

      微處理器型號後面的”PU”(或者”AU”),代表IC的封裝形式,官方UNO控制板用的IC就是PU封裝形式,所以你並不需要修改它的bootloader(註:Pro Mini板則是”AU”形式)。

      thanks,
      jeffrey

  34. 老師您好:

    請問您有收email嗎? 我寫email給您問一個您發布一篇很久的文章。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top