Robofun 機器人論壇

標題: arduino用變壓器的問題 [打印本頁]

作者: zero7386    時間: 2012-1-10 16:40
標題: arduino用變壓器的問題
各位大大,請問一下,小弟現在用arduino + ethernet shield這兩塊板子,寫一個簡單的hello world網頁,如果我用電腦的usb供電的話,都沒有問題,但如果改變壓器(DC 9V)的話,為什麼都無法動作.想請問是不是有什麼要做設定的?
作者: miaoichi    時間: 2012-1-10 22:52
Arduino獨立電源9v是對的呀,你要不要再多說明一些,這樣很難幫你看問題
作者: mzw2008    時間: 2012-1-11 02:40
電腦或9V供電是沒差的
但你是否有利用COM跟arduino 通訊
若有那當然不能用囉
電腦那條USB線除了供電以外也理所當然提供了COM連線
若拔掉改9V又要COM, 就得另外有TTL 2 RS232轉板才行

但若沒有使用COM...那就先把照片照來看看吧
理論是不用設定
但可能哪裡錯了
也可能9V那個部份是壞的哩
作者: zero7386    時間: 2012-1-11 18:32
謝謝樓上的兩位大大的講解。

我現在就只有做這樣簡單的事(#define和include沒打上來,很多),就如同我上面說的,如果用電腦的usb供電的話,去連這個網頁,看的到字,但如果是用外接電源,則會連不上這個網頁。

void setup()
{
    Ethernet.begin(mac, ip, gateway, subnet);
    server.begin();
}


void loop()
{
    Client client = server.available();

    if (client)
    {
        while (client.connected())
        {
            if (client.available())
            {
                char c = client.read();
                //read char by char HTTP request
                if (readString.length() < 30)
                {
                    //store characters to string
                    readString += c;
                }//end if (readString.length() < 30)

                //output chars to serial port
                //Serial.print(c);

                //if HTTP request has ended
                if (c == '\n')
                {
                    // now output HTML data starting with standart header
                    client.println("HTTP/1.1 200 OK");
                    client.println("Content-Type: text/html");
                    client.println();
                    client.print("<body>");
                    //想show在網頁上的寫在這---start----
                    client.println("<h1>HTTP test routines</h1>");
                    //想show在網頁上的寫在這---end----
                    client.println("</body></html>");
                    //clearing string for next read
                    readString="";
                    //stopping client
                    client.stop();
                }//end if (c == '\n')

            }//end if (client.available())

        }//end while (client.connected())
    }//end if (client)
}
作者: mzw2008    時間: 2012-1-11 23:14
那這樣我更懷疑9V供電是壞的了

1. 先看9V給電時, 版子電源是否有亮
2. 在看給電後, 板上的5V/3.3V兩隻腳有沒有確實輸出這個電壓

wifi shield 也是從5V取電
也許你版子的電源或是變壓器根本就壞的哩
作者: miaoichi    時間: 2012-1-11 23:28
你可以試燒一下這個範例嗎?

/*
  Web Server

A simple web server that shows the value of the analog input pins.
using an Arduino Wiznet Ethernet shield.

Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13
* Analog inputs attached to pins A0 through A5 (optional)

created 18 Dec 2009
by David A. Mellis
modified 4 Sep 2010
by Tom Igoe

*/

#include <SPI.h>
#include <Ethernet.h>

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1, 177);

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);

void setup()
{
  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
}

void loop()
{
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();

          // output the value of each analog input pin
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(analogRead(analogChannel));
            client.println("<br />");
          }
          break;
        }
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
  }
}

作者: zero7386    時間: 2012-1-13 11:15
miaoichi大大,用你的code一樣也不能呢.....
mzw2008大大,我想會不會是我的ethernet shield這塊板子有問題?因為我arduino uno有3片,3片都換過,一樣也是不能,看來要來去借ethernet shield這塊板子了
作者: mzw2008    時間: 2012-1-13 23:50
我的意思是...各個接頭一個一個去試
確認電壓是正確的
輸出的波形也該正確
這樣可以確認到底問題出在哪裡




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2