Arduino Ver. 1.0

Bueno supongo que habeis visto que han lanzado la versión 1.0. Creo que tiene cositas muy interesantes, en mi caso me parece especialmente util los siguientes puntos. Y a vosotros, que os parece?

The Serial class (as well as other classes inheriting from Stream, like EthernetClient, SoftwareSerial, Wire and more) now contains functions for parsing incoming data, based on the TextFinder library by Michael Margolis. They include find() and findUntil() to search for data, parseInt() and parseFloat() for converting incoming characters into numeric values, and readBytes() and readBytesUntil() for reading multiple bytes into a buffer. They use a timeout that can be set with the new setTimeout().

  • Support has been added for printing strings stored in flash (program memory) rather than RAM. Wrap double-quoted strings in F() to indicate that they should be stored in flash, e.g. Serial.print(F("hello world")). (todavia no se muy bien como funciona, pero si hace mas facil guardar en la flash cadenas para imprimir por serial, sera una gozada.

  • Support for DHCP and DNS has been added to the Ethernet library, thanks to integration by Adrian McEwen.

respecto al serial.print(F(“texto”));

he encontrado esto y me parece estupendo, no veas la de codigo que te evitas y lo sencillo que hace tu código de leer comparado con el metodo anterior.

Discussion
Strings are particularly hungry when it comes to RAM. Each character uses a byte, so
it is easy to consume large chunks of RAM if you have lots of words in strings in your
sketch. Inserting your text in the F("text") expression uses much larger Flash memory
used to store program code.
If you are using an earlier Arduino release you can still store text in program memory,
but you need to add a little more code to your sketch. Here is the same functionality
implemented for releases earlier than 1.0:
 #include <avr/pgmspace.h> // for progmem
//create a string of 20 characters in progmem
const prog_uchar myText[] PROGMEM = "arduino duemilanove "; 
void setup()
{
  Serial.begin(9600);
}
void loop()
{
  Serial.print(memoryFree());  // print the free memory
  Serial.print(' ');           // print a space
  printP(myText);              // print the string
  delay(1000);
}

Antes de la 1.0 sólo había que hacer serial.print(PSTR(“texto”)); Vamos cambiar F por PSTR…
Claro que había que meter #inlcude <avr/pgmspace.h> pero ahora ese include está dentro de las librerías

Y la librería SD también traía una función similar PgmPrintln(“texto”);

chiva:
Antes de la 1.0 sólo había que hacer serial.print(PSTR(“texto”)); Vamos cambiar F por PSTR…
Claro que había que meter #inlcude <avr/pgmspace.h> pero ahora ese include está dentro de las librerías

Y la librería SD también traía una función similar PgmPrintln(“texto”);

usando este print

  Serial.println(PSTR("0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789")); //Vamos cambiar F por PSTR...

acabo de probarlo en la version 22 y me sale esto…
(ni caso a lo de String que es otra prueba) y el numero que aperece es la memoria ram libre.

como ves algo falla xq imprime muchas "b"s

String 0
String 1
String 2
String 3
String 4
String 5

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
7512
String 0
String 1
String 2
String 3
String 4
String 5

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
7512
String 0
String 1
String 2
String 3
String 4
String 5

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
7512
String 0
String 1
String 2
String 3
String 4
String 5

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
7512
String 0
String 1
String 2
String 3
String 4
String 5

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
7512
String 0
String 1
String 2
String 3
String 4
String 5

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
7512
String 0
String 1
String 2
String 3
String 4
String 5

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
7512
String 0
String 1
String 2
String 3
String 4
String 5

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
7512
String 0
String 1
String 2
String 3
String 4
String 5

Pues ahora que lo dices, lo he probado y es verdad que no funciona... Juraría haberlo usado en algún proyecto hace algún tiempo