Het is niet mijn vak, dat programmeren, ik ben maar een domme schipper, en van SDRAM heb ik nog nooit gehoord.
Maar, ik heb een nieuwe proef-sketch, zonder PROGMEM, die het doet.
Getest, met breadbordje en ledjes, op pin 3-9, en 2 willekeurige sensortjes op A0 en A1.
Bij het verifieren van de sketch, zegt ie:
binery sketch size : 16716 bytes (of a 32256 byte maximum)
(Arduino UNO)
Nu wou ik die code wel opsturen, maar dan krijg ik een foutmelding:
The message exceeds the maximum allowed length (9500 characters).
Dus, komt ie nu in 2 of 3 keer
Deel 1:
#include <SPI.h>
#include <Ethernet.h>
#define MaxHeaderLength 256 //maximum length of http header required
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = {
192, 168, 1, 90 }; // static ip of Arduino
byte gateway[] = {
192, 168, 0, 1 }; // gateway address
byte subnet[] = {
255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //web server port
String HttpHeader = String(MaxHeaderLength);
String Pagina = String(MaxHeaderLength);
String Dataregel = String(MaxHeaderLength);
int value = 0;
int Pin = 0;
/* SETUP */
void setup(){
//enable serial monitor
Serial.begin(9600);
//start Ethernet
Ethernet.begin(mac, ip, gateway, subnet);
//initialize variable
//Pin 1,2 is Tx,Rx
pinMode(3,OUTPUT);
digitalWrite(3,LOW);
// Pin 4 is voor SD
for (int i=5; i < 10; i++){
pinMode(i, OUTPUT);
digitalWrite(i,LOW);
}
HttpHeader="";
Pagina="";
Dataregel="";
}
/* LOOP */
void loop(){
// Create a client connection
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read MaxHeaderLength number of characters in the HTTP header
//discard the rest until \n
if (HttpHeader.length() < MaxHeaderLength){}
//store characters to string
HttpHeader = HttpHeader + c;
//if HTTP request has ended
if (c == '\n') {
// start of web page
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
//client.println("<html><head></head><body>");
client.println(); // haal dit weg, en het werkt niet meer, waarom???
//client.println("Hela mundo");
//client.println();
zoek_pagina();
if (Dataregel != ""){
Data_afhandelen();
}
if (Pagina == "/favicon.ico "){} //do nothing
else {
if (Pagina == "/ "){
hoofdpagina(client);
}
else{
if (Pagina == "/sensors "){
sensors(client);
}
else {
if (Pagina == "/knoppen "){
knoppen(client);}
else {
if (Pagina == "/knop_3 "){
knop_3(client);}
else {niet_gevonden(client);
}}}}
//clearing strings for next read
HttpHeader="";
Pagina="";
Dataregel="";
//stopping client
delay(1);
client.stop();
}}}}}}