arduino begin

Arduino specifieke Software
Berichten: 11
Geregistreerd: 22 Sep 2015, 18:19

arduino begin

Berichtdoor roygie1991 » 22 Sep 2015, 18:25

goedenavond allemaal
dit is me eerste post dus zou me eerst even voorstellen
ik ben roy 24 jaar
en ik heb een ardiuno mega met internet shield
nu heb ik een probleem dat me arduino regelmatig vast loopt
hieronder de sketch
als ik een paar keer klik bv aan uit aan uit
dan loopt die vast dan blijft de internet browsers doorladen en dan opeens
kan die me arduino niet meer vinden.

hoop dat ik het een beetje makkelijk uit gelegd heb

mvg roy



//begin code//
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 58-16-44-11-58-11 };
EthernetServer server(99);
byte ip[] = { 192, 168, 2, 50 }; // ip in lan
byte gateway[] = { 192, 168, 2, 254 }; // internet via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
String readString;

//////////////////////

void setup(){

pinMode(13, OUTPUT ); //pin
pinMode(12, OUTPUT );



//start Ethernet
Ethernet.begin(mac, ip, gateway, gateway, subnet);
server.begin();

//serial data print
Serial.begin(9600);
Serial.println("server multi pin knoppies test 1.0"); // so I can keep track of what is loaded
}

void loop(){
// Create a client connection
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();

//lees teken voor teken in HTTP request
if (readString.length() < 100) {

//tekens opslaan in string
readString += c;
//Serial.print(c);
}

//if HTTP request is gestopt
if (c == '\n') {

///////////////
Serial.println(readString); //print naar seriele monitor voor debuging

client.println("HTTP/1.1 200 OK"); //stuur nieuwe pagina
client.println("Content-Type: text/html");
client.println();

client.println("<HTML>");
client.println("<HEAD>");
client.println("<TITLE>Arduino test browser</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");

client.println("<h1 style=color:GreenYellow font-family:verdana>........test arduino........</h1>");
client.println("<H1 style=color:purple >--------klik voor test-------</H1>");







client.print("<input type=submit value=aan13 style=width:120px;height:80px;background-color:#00FF40;font-size:200%; onClick=location.href='/?on13;'>");
client.println("<br/>");
client.println("<br/>");
client.print("<input type=submit value=uit13 style=width:120px;height:80px;background-color:#FF0000;font-size:200%; onClick=location.href='/?off13;'>");
client.println("<br/>");
client.println("<br/>");
client.println("<br/>");
client.println("<br/>");
client.print("<input type=submit value=aan12 style=width:120px;height:80px;background-color:#00FF40;font-size:200%; onClick=location.href='/?on12;'>");
client.println("<br/>");
client.println("<br/>");
client.print("<input type=submit value=uit12 style=width:120px;height:80px;background-color:#FF0000;font-size:200%; onClick=location.href='/?off12;'>");
client.println("<br/>");
client.println("<br/>");
client.println("<br/>");
client.println("<br/>");


client.print("&nbsp;<input type=submit value='alles uit' style=width:150px;height:80px;background-color:#ffcc00;font-size:200%; onClick=location.href='/?on1213;'>");
client.println("<br/>");
client.println("<br/>");
client.print("&nbsp;<input type=submit value='alles aan' style=width:150px;height:80px;background-color:#ffcc00;font-size:200%; onClick=location.href='/?off1213;'>");

client.println("</BODY>");
client.println("</HTML>");

delay(1);
//stop client
client.stop();




if(readString.indexOf('13') >0)//checkt 8
{
digitalWrite(13, HIGH); // zet pin 8 high
Serial.println("Led 13 aan");
}
if(readString.indexOf('13') >0)//checkt 9
{
digitalWrite(13, LOW); // zet pin 8 low
Serial.println("Led 13 uit");
}

if(readString.indexOf('12') >0)//checkt 8
{
digitalWrite(12, HIGH); // zet pin 8 high
Serial.println("Led 12 aan");
}
if(readString.indexOf('12') >0)//checkt 9
{
digitalWrite(12, LOW); // zet pin 8 low
Serial.println("Led 12 uit");
}







//String leegmaken voor volgende read
readString="";

}
}
}
}
}


//einde code//

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: arduino begin

Berichtdoor nicoverduin » 22 Sep 2015, 18:36

Vermoedelijk ligt de oorzaak in het gebruik van de String() functie. Die wordt elke keer vergroot, leeg gemaakt etc. Echter String() zou eigenlijk verboden moeten worden omdat deze elke keer geheugen van je RAM alloceert maar niet goed vrijgeeft. Dat komt omdat er geen memory management is op de Arduino en ook geen zgn. garbage collection. Gevolg is dat er elke keer nieuw RAM geheugen wordt gebruikt.... totdat het op is en jij vastloopt omdat er geheugen wordt overschreven. Alleen wel op de verkeerde plekken.
De oplossing is om gewoon de klassieke char, strcpy en andere gewone char functies te gebruiken.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 11
Geregistreerd: 22 Sep 2015, 18:19

Re: arduino begin

Berichtdoor roygie1991 » 22 Sep 2015, 18:48

oke
dus moet helemaal weer overnieuw beginnen zeg maar
dus dat stukje van readsting enz dat moet ik over nieuw maken de rest is dus wel goed
dat klassieke char stukje snap ik ook niet echt :$
zolang zit ik er nog niet echt in ik denk dat ik beetje midden in begonnen ben met moeilijkheids graad ben ik bang voor

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: arduino begin

Berichtdoor nicoverduin » 22 Sep 2015, 21:27

yep....... zie: http://www.tutorialspoint.com/ansi_c/c_ ... rences.htm
Of begin eerst met wat tutorials..... En gebruik String nooit meer tenzij je op een fatsoenlijk platform zit (linux, windows, OsX oid) waar een fatsoenlijke garbage collection op zit.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: arduino begin

Berichtdoor shooter » 25 Sep 2015, 09:07

dit moet boven setup

// Create a client connection
EthernetClient client = server.available();
paul deelen
shooter@home.nl

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: arduino begin

Berichtdoor nicoverduin » 25 Sep 2015, 10:20

Nee paul hij wil toch meerdere clients bedienen.
Dus creer je de client in de loop als er een server is. En die client die er dan aanhangt wordt bediend. Einde van de rit gooi je die client weer weg omdat er dan een andere client kan komen.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 11
Geregistreerd: 22 Sep 2015, 18:19

Re: arduino begin

Berichtdoor roygie1991 » 25 Sep 2015, 15:17

ik ben er al uit denk ik
ik denk dat ik uit gang 10 opgeblazen heb op 1 of andere manier
want als ik die wilt schakelen doet die dat niet voor de rest werkt het op allemaal
er komt ook een raar piepje uit als ik poort 10 aan sluit en die knippert ook mee op alles als ik iets schakel

dus denk dat ik wat gesloopt heb:(

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: arduino begin

Berichtdoor nicoverduin » 26 Sep 2015, 14:42

roygie1991 schreef:ik ben er al uit denk ik
ik denk dat ik uit gang 10 opgeblazen heb op 1 of andere manier
want als ik die wilt schakelen doet die dat niet voor de rest werkt het op allemaal
er komt ook een raar piepje uit als ik poort 10 aan sluit en die knippert ook mee op alles als ik iets schakel

dus denk dat ik wat gesloopt heb:(
Dat zou ik knap vinden........ Gewoon alles eraf halen, ledje met weerstand op pin 10 en ff blink draaien....
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 11
Geregistreerd: 22 Sep 2015, 18:19

Re: arduino begin

Berichtdoor roygie1991 » 26 Sep 2015, 15:16

Knippert niet blijft branden continu
En piept heel raar

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: arduino begin

Berichtdoor nicoverduin » 26 Sep 2015, 16:24

Een Arduino die piept?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Volgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 85 gasten