Show Posts
Pages: [1]
1  Using Arduino / Installation & Troubleshooting / Re: W7 BSOD, after reboot .ino empty on: March 04, 2014, 01:00:07 pm
Thanks for the reply.  smiley
If you mean the *.cpp file inside the build temp-folder, unfortunately the file is the same, right size, just [nul] signs.
Next time I will look at this file immediately after bluescreen.

Thanks again and for now, it's solved - after eating a banana I coded that half day again.  smiley-draw

By the way,
the BSOD was related to some crappy cheap USB/RS232 converter driver, Windows 7 plugged in in a USB 3.0 port.  smiley-neutral
2  Using Arduino / Installation & Troubleshooting / W7 BSOD, after reboot .ino empty on: March 03, 2014, 08:57:42 am
Hi all,

Just after compiling my source my computer had a Blue Screen Of Death (damn Windows..). But after booting it again the .ino file I was working on is empty! It just contains spaces but the file size is about right I think (9,53 kB).
If I open the file in Notepad++ it shows 9760 times [nul] signs.
Is there any suggestion on a temp file I could find? The previous version of the script was early this morning, so I hope there is some way to have some code back.
Does the Arduino software bother bsod or why else is my .ino empty? I was not saving it, I think...

Thanks in advance for your opinion,
Regards, Robert-Jan
3  International / Nederlands / Re: Bytes naar long on: July 23, 2013, 02:52:09 pm
Bedankt voor je antwoord Jantje.

Dit werkt inderdaad wel.
a[0] is inderdaad een byte, en die shift ik 16 bits naar links en sla deze op in b. Dan verandert er toch niks aan a[0]?
Stel dat ik het volgende heb:
a[0] = B0000 0100;
a[1] = B0000 0010;
a[2] = B0000 0001;

Dan doe ik toch het volgende?
1. a[0] 16 plaatsen naar links shiften --> 0000 0100 0000 0000 0000 0000
2. a[1] 8 plaatsen naar links shiften --> 0000 0010 0000 0000
3. a[2] zo laten 0000 0001
En dan 1+2+3 toch? Dan wordt het
0000 0100 0000 0010 0000 0001

Wat is precies een overflow probleem? Ik heb met mijn vorige code wel wat lompe dingen gedaan met veel String variabelen, en variabelen meerdere malen gedeclareerd, dat leidde onder andere tot een automatische reboot (of crash) van de Arduino Uno.

Alvast bedankt voor je antwoord!
4  International / Nederlands / Bytes naar long on: July 23, 2013, 02:04:55 pm
Dag allemaal,

Ik probeer in een Arduino project een getal uit te lezen dmv RS232, dit gaat allemaal prima. Het getal heb ik opgeslagen in 3 variabelen, elk 1 hex byte.
Deze 3 variabelen moeten alleen nog bij elkaar opgeteld worden, samen moet het 2.475.000 worden (ruim 2 miljoen dus), omdat dit niet meer in een int past heb ik voor een long gekozen.
Ik heb de oplossing gevolgd zoals deze hier staat:  http://forum.arduino.cc/index.php?topic=42158.msg305744#msg305744
Op de een of andere manier maakt hij er alleen ffff van in het begin.
Dit is mijn (eenvoudige) code:

Code:
byte a[] = {
  0x00, 0x00, 0x00
};

unsigned long b = 0UL;

void setup() {
  Serial.begin(9600);
  a[0] = 0x25;
  a[1] = 0xc3;
  a[2] = 0xf8;
}

void loop() {
  Serial.println("Deze 3 hebben we: ");
  Serial.println(String(a[0], HEX));
  Serial.println(String(a[1], HEX));
  Serial.println(String(a[2], HEX));

  b = (unsigned long)(a[0] << 16) | (a[1] << 8) | a[2];
  Serial.print("dit is het getal: ");
  Serial.println(String(b, HEX));
 
  delay(20000);

}

Ik heb het idee dat ik al aardig in de buurt zit, maar het lukt nog niet!

Alvast bedankt voor het meedenken!
Mvg, Robert-Jan
5  International / Nederlands / Re: EthernetShield - server èn client on: February 04, 2013, 03:48:52 pm
Mooi, lukt je dit ook met 2 verschillende poorten? Bv server op 80 en client op 81?

Meteen even uitgeprobeerd en ja hoor! Heb de server nu op 81 draaien en de client vraagt nog netjes aan poort 80 de requests. Weet alleen niet waar de antwoorden van de requests aankomen bij de Arduino, dat behandelt mijn script niet, zal misschien ook wel 80 zijn, kan ik helaas niet testen.

Ter info: De Arduino fungeert nu als stand-alone GPIO box voor een PHP web-applicatie.

[ Offtopic: Ik wilde nog iets met HTML5 websockets testen maar dat werd me al snel iets te ingewikkeld :-) - als er iemand expertise heeft hoor ik het graag smiley-wink ]
6  International / Nederlands / Re: EthernetShield - server èn client on: February 03, 2013, 05:43:49 am
Dag Jantje,

Bedankt voor de info, inmiddels heb ik de voorbeeldscriptjes van de EthernetShield al bij elkaar gedaan en iets gemodificeerd. Wanneer hij een aanvraag krijgt, gaat de webserver antwoorden en anders is het mogelijk een pakketje te versturen (als client). Dus niet tegelijkertijd, maar zeker werkbaar.

Dus het is gelukt!

Ter info: dit is mijn script:

Code:
/*
  GPIO-Ethernet code v2 by Robert-Jan.
  some source code used from the examples, credits:


  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 9 Apr 2012
 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, 0xAA, 0xAA };
IPAddress ip(192,168,1, 45);

IPAddress ip_server(192,168,1,44); // PHP webserver

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);
int led1 = 7;
int button1 = 3;
boolean flag1 = false;
int i1 = 0;

void setup() {
    pinMode(A0, OUTPUT);
    pinMode(led1, OUTPUT);
    pinMode(button1, INPUT);

 // Open serial communications and wait for port to open:
  Serial.begin(9600);

  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
}


void loop() {
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    digitalWrite(A0, HIGH);
    Serial.println("Client connected");
    boolean currentLineIsBlank = true;
    String buffer = ""; 
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
     //   Serial.print(c);   // commented voor performance
        buffer+=c;       
        if (c == '\n' && currentLineIsBlank) {
         
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();

          if (digitalRead(7)){ 
            client.print(" GPO 1 is <font color='green'>HOOG</font>");
            Serial.println("GPO 1 hoog gemaakt");
          }else{
            client.print(" GPO 1 is <font color='red'>LAAG</font>");
            Serial.println("GPO 1 laag gemaakt");
          }
          client.println("<br />");
           
          break;
        }
        if (c == '\n') {
         
          currentLineIsBlank = true;
          buffer="";       
        } else if (c == '\r') {           
          if(buffer.indexOf("GET /?gpo=")>=0) {
         
       //    Serial.println(buffer.substring(10,11));
          // GPO 1 hoog
          if (buffer.substring(10,11) == "1") {
                  digitalWrite(led1,HIGH); 
          }
         
          // GPO 1 laag
          if (buffer.substring(10,11) == "0") {
                  digitalWrite(led1,LOW); 
          }
         
         }
         
     
        }
        else {
         
          currentLineIsBlank = false;
        }
      }
    }
   
    delay(1);
   
    client.stop();
   
    Serial.println("client disonnected");
    Serial.println("");
  } else {
   digitalWrite(A0, LOW); 
   
   int sensorValue = digitalRead(3);
   if (sensorValue == HIGH) {
      flag1 = true;
   } else {
     flag1 = false;
     i1 = 0;
   }
   
   
   if (flag1 == true && i1 == 0) {
    Serial.println("GPI 1 hoog");
    flag1 = false;
    i1 = 1;
   
    if (client.connect(ip_server, 80)) {
      Serial.println("connected");
      Serial.println("");
      // Make a HTTP request:
      client.println("GET /gpi_1.php HTTP/1.0");
      client.println();
     
      if (!client.connected()) {
        client.stop();
      }
       
    } else {
       Serial.println("connection failed");
    }
   
   
   }
   
   
   
  } 
 
}
7  International / Nederlands / EthernetShield - server èn client on: January 30, 2013, 12:52:16 pm
Hi allemaal,

Veel informatie haal ik als beginnende gebruiker al van dit forum, erg leuk!
Nu zit ik na te denken over een toepassing. Hiervoor heb ik een 'heen-en-weer' verbinding nodig met een NAS webserver (PHP). (een led aanzetten met een actie op die server EN bij het drukken op een Arduino knop een script uitvoeren op die server)

Ik heb een Arduino Uno met EthernetShield, daarmee kan ik een server maken en ook een client lukt wel. Maar is het ook mogelijk om beide tegelijk te doen?
Ik las op een ander forum dat de chip tot 4 sockets kan maken? Zijn deze dan ook los te 'programmeren'?
Het maakt me niet uit als de server en client eventueel andere IP-adressen hebben..

Als iemand een idee heeft hoor ik dat graag.
Heb ook al gedacht aan een PHP-socket verbinding, maar denk niet dat dat het wordt..

Alvast bedankt voor het meedenken!
Groet, Robert-Jan
Pages: [1]