Go Down

Topic: Kontrollering af digital pins på arduino mega (Read 4104 times) previous topic - next topic

RasmusF

Sidder og studser lidt over hvordan jeg skal kunne kontrollere et output fra arduino mega'en, igennem et ethernet shield, fandt et eksempel på nettet, der næsten virkede, jeg kunne tænde min lille LED pære (pin 13 og GND) men kunne ikke slukke den igen, er der nogen der ligger inde med eksempel ville det være fantastisk.

bld

Hvis du sætter den kode ind som du brugte, så vil det hjælpe en del.
captain-slow.dk | non contagious!

RasmusF

Det skal siges jeg har "lånt" det fra en anden på det store internet, ændrede lidt bibliotekter og redigerede i strings, så kunne jeg tænde LED pæren, men ikke slukke den igen.

Code: [Select]
#include <SPI.h>


#include <Ethernet.h>
/*
     Simple Ethernet Test

       Arduino server outputs simple text to browser

     The circuit:
     * Arduino Duemilanove
       * Arduino Ethernet shield
       * Basic FTDI breakout 5V
       *LED connected to GND and digital pin 4 via resistor
     
       By Minde
     http://www.sciencprog.com/
*/

byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x1D, 036 }; //physical mac address
byte ip[] = { 192, 168, 1, 34 };                  // ip in lan
byte gateway[] = { 192, 168, 1, 1 };                  // internet access via router
byte subnet[] = { 255, 255, 255, 0 };                   //subnet mask
Server server(80);                                     //server port
byte sampledata=50;            //some sample data - outputs 2 (ascii = 50 DEC)            
int ledPin = 13;  // LED pin
char link[]="http://www.scienceprog.com/"; //link data

String readString = String(30); //string for fetching data from address
boolean LEDON = false; //LED status flag
void setup(){
//start Ethernet
 Ethernet.begin(mac, ip, gateway, subnet);
//Set pin 4 to output
 pinMode(ledPin, OUTPUT);  
//enable serial datada print  
 Serial.begin(9600);
}
void loop(){
// Create a client connection
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);
     }  
       //output chars to serial port
       Serial.print(c);
       //if HTTP request has ended
       if (c == '\n') {
         //lets check if LED should be lighted
        if(readString.indexOf("L=1"))
          {
            //led has to be turned ON
            digitalWrite(ledPin, HIGH);    // set the LED on
            LEDON = true;
          }else{
            //led has to be turned OFF
            digitalWrite(ledPin, LOW);    // set the LED OFF
            LEDON = false;            
          }
         // now output HTML data starting with standart header
         client.println("HTTP/1.1 200 OK");
         client.println("Content-Type: text/html");
         client.println();
         //set background to yellow
         client.print("<body style=background-color:yellow>");
         //send first heading
         client.println("<font color='red'><h1>HTTP test routines</font></h1>");
         client.println("<hr />");
         client.println("<hr />");
         //output some sample data to browser
         client.println("<font color='blue' size='5'>Sample data: ");
         client.print(sampledata);//lets output some data
         client.println("<br />");//some space between lines
         client.println("<hr />");
         //drawing simple table
         client.println("<font color='green'>Simple table: ");
         client.println("<br />");
         client.println("<table border=1><tr><td>row 1, cell 1</td><td>row 1, cell 2</td></tr>");
         client.println("<tr><td>row 2, cell 1</td><td>row 2, cell 2</td></tr></table>");          
         client.println("<br />");
         client.println("<hr />");
         //printing some link
         client.println("<font color='blue' size='5'>Link: ");
         client.print("<a href=");
         client.print(link);
         client.println(">Visit Scienceprog!</a>");
         client.println("<br />");
         client.println("<hr />");
         //controlling led via checkbox
         client.println("<h1>LED control</h1>");
         //address will look like http://192.168.1.110/?L=1 when submited
         client.println("<form method=get name=LED><input type=checkbox name=L value=1>LED<br><input type=submit value=submit></form>");      
         client.println("<br />");
         //printing LED status
         client.print("<font size='5'>LED status: ");
         if (LEDON)
             client.println("<font color='green' size='5'>ON");
         else
             client.println("<font color='grey' size='5'>OFF");    
         client.println("<hr />");
         client.println("<hr />");
         client.println("</body></html>");
         //clearing string for next read
         readString="";
         //stopping client
         client.stop();
           }
         }
       }
     }
}    






Haavard GJ

du kan ta en titt på det jeg har gjort, virker for min del:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1293004458

jeg har også brukt samme kilde som deg, men jeg bruker en duemilinove, og ikke en mega, så det kan hende du må endre litt på koden

Go Up