ARDUINO Esplora
Programmi
Ultimo aggiornamento 14 agosto 2013


 

La scheda ESPLORA si differenzia da tutte le schede Arduino precedenti, poiché su di essa sono già montati, di serie, diversi sensori.
In particolare sulla scheda ESPLORA sono presenti i seguenti dispositivi:

Programma di test per la scheda Arduino Esplora dotata di display TFT

Il programma proposto permette di testare tutti i sensori e gli attuatori presenti sulla scheda. Le istruzioni e i valori letti sono mostrati sul display TFT che deve essere obbligatoriamente installato. Il programma originale è presente a questo link:

http://21stdigitalhome.blogspot.it/2013/02/arduino-esplora-with-display-exercise.html

Questa versione è solamente un adattamento/traduzione delle istruzioni per utilizzarlo con le librerie originali Arduino. Anche i testi presenti sul display sono stati tradotti.

Programma Esplora_test_new

 

homotix

PCBA

OurPCB

Appena caricato il programma sarà mostrata una pagina di presentazione da cui scegliere il tipo di prova da effettuare. Per fare questo occorrerà premere il relativo tasto tra quelli presenti alla destra del display. Con il tasto 1 si testano i vari sensori, con il tasto 2 si effettua il test del led RGB, mentre il tasto 3 permette il test del buzzer.

Test 1 - Sensori

Quando si premono i pulsanti o si sposta il joystick, la parola appropriata passa dal bianco al verde. Muovendo il potenziometro lineare (slider) i valori varieranno partendo da 1023 a sinistra a 0 sulla destra.
Viene visualizzato il valore del suono rilevato dal microfono (pronunciare valore in sua corrispondenza) così come il valore di sensore di luce (coprire per cambiare). La temperatura è misurata in gradi Celsius e Fahrenheit (sotto il display sopra il cursore, soffiare fiato caldo per elevare la temperatura). Infine, sono visualizzati i valori di accelerometro (X, Y e Z) (inclinare nelle tre direzioni ESPLORA per vedere i cambiamenti). Quando si vuole uscire, spingere verso il basso il joystick (non spostarlo, ma spingerlo con decisione verso il basso) per tornare al menu.

Test 2 - Led RGB

Se dal menu principale si preme il tasto 2 si passa al programma di Test del LED RGB.  I valori del rosso e verde possono essere regolati da 0 a 255 spostando il joystick verso l'alto, il basso, sinistra e destra. Mentre per regolare i valori del blu si dovrà variare la posizione del cursore del potenziometro lineare. Per uscire, premere di nuovo verso il basso il joystick.

Test 3 - Buzzer

Infine, per testare il buzzer selezionare il tasto 3 del menu principale. Si dovrà spostare il cursore del potenziometro lineare per regolare la frequenza. Partendo da frequenze basse con il cursore tutto a sinistra a frequenze più alte spostando il cursore verso destra. Se non si sposta il cursore il suono si arresterà dopo 5 secondi, per arrestarlo immediatamente premere il tasto 1. Premere di nuovo il joystick verso il basso per accedere al menu.

/*
  Il programma originale è stato adattato da Adriano Gandolfo per utilizzare
  la nuova libreria per la gestione della scheda Esplora
  
  Esplora Test - assumes you have a color display attached (Adafruit 1.8" breakout or compatible) 
 
 This sketch allows to test the Esplora's peripherals 
 
 Created on January 18, 2013  Mike Barela http://21stdigitalhome.blogspot.com/
 Please keep attribution in derivative works, use in noncommercial and commercial
 products is granted
 Per Adafruit MIT license, following comments included
 ***************************************************
 This is an example sketch for the Adafruit 1.8" SPI display.
 This library works with the Adafruit 1.8" TFT Breakout w/SD card
 ----> http://www.adafruit.com/products/358
 
 Check out the links above for our tutorials and wiring diagrams
 These displays use SPI to communicate, 4 or 5 pins are required to
 interface (RST is optional)
 Adafruit invests time and resources providing this open source code,
 please support Adafruit and open-source hardware by purchasing
 products from Adafruit!
 
 Written by Limor Fried/Ladyada for Adafruit Industries.
 MIT license, all text above must be included in any redistribution
 ****************************************************
 */


#include <Esplora.h>
#include <TFT.h>            // Arduino LCD library
#include <SPI.h>
char freqval[3];  // array to hold the temperature data

char tempPrintout[5];  // array per contenere i dati di temperatura
char freqPrintout[6];  // array per contenere i dati di frequenza
char redPrintout[5];  // array per contenere i dati del colore rossso
char greenPrintout[5];  // array per contenere i dati del colore verde
char bluePrintout[5];  // array per contenere i dati del colore blue
char lightPrintout[5];  // array per contenere i dati della luce
char soundPrintout[5]; // array per contenere i dati del microfono
char sliderPrintout[5];// array per contenere i dati dello slider
char celsiusPrintout[5];// array per contenere i dati della temperatura in celsius
char fahrenheitPrintout[5];// array per contenere i dati della temperatura in fahrenheit
char x_axisPrintout[5];// array per contenere i dati accelerometro asse X
char y_axisPrintout[5];// array per contenere i dati accelerometro asse Y
char z_axisPrintout[5];// array per contenere i dati accelerometro asse Z

String freq1;
String redval;
String greenval;
String blueval;
String sliderval;
String lightval;
String celsiusval;
String fahrenheitval;
String x_val;
String y_val;
String z_val;
/*
  This array holds the last sensed state of each of the buttons read.
 Later in the code, you'll read the button states, and compare them
 to the previous states that are stored in this array. If the two
 states are different, it means that the button was either pressed or released.
 */
boolean buttonStates[8];

/*
  This array holds the names of the buttons being read.
 Later in the sketch, you'll use these names with
 the method Esplora.readButton(x), where x is one of these buttons.
 */
const byte buttons[] = {
  JOYSTICK_DOWN,
  JOYSTICK_LEFT,
  JOYSTICK_UP,
  JOYSTICK_RIGHT,
  SWITCH_RIGHT, 
  SWITCH_LEFT, 
  SWITCH_UP, 
  SWITCH_DOWN, 
};

#define sound_pin 6 // Direct sound on Esplora (not currently used but you can use with tone() function)
// instead of using Esplora.tone

void setup() {


  EsploraTFT.begin();
  EsploraTFT.background(0,0,0); //sfondo nero
}

void loop() {
  int S1, S2, S3;   // holds values of switches 1 to 3
  DisplaySplash();  // Display splash page and main menu
  S1=HIGH; 
  S2=HIGH; 
  S3=HIGH;
  while(S1==HIGH && S2==HIGH && S3==HIGH) {  // keep reading buttons until one is pressed 
    S1 = Esplora.readButton(SWITCH_1);
    S2 = Esplora.readButton(SWITCH_2);  
    S3 = Esplora.readButton(SWITCH_3);
    if(S1==LOW) 
      TestOutputs();  // if Switch 1 is pressed, test outputs
    else if(S2==LOW) 
      TestLED();      // if switch 2 is [ressed, do LED mixer
    else if(S3==LOW)
      TestSound();    // if switch 3 is pressed, do buzzer test
  }  // end while (breaks out if button presed and routine done (meaning go back to splash page)
}

void DisplaySplash() {   // display first screen which is also the main menu
  EsploraTFT.background(0,0,0); //sfondo nero
  EsploraTFT.setTextSize(2);
  EsploraTFT.stroke(0,255,0); //colore del testo verde
  EsploraTFT.text("Benvenuti in",0,0);
  EsploraTFT.text("   Arduino",0,16);
  EsploraTFT.text("   Esplora",0,32);
  EsploraTFT.setTextSize(1);
  delay(500);
  EsploraTFT.stroke(255,255,0); //colore del testo giallo
  EsploraTFT.text("Premi un tasto",0,61);
  EsploraTFT.text("- 1 per test uscite",0,78);
  EsploraTFT.text("- 2 per test LED",0,91);
  EsploraTFT.text("- 3 per test suono",0,104);
}

void TestLED() {  // text RGB LED on Esplora interactively
  int red, green, blue;                 // valid LED values are 0-255
  int oldred=0, oldgreen=0, oldblue=0;  // values to see if a value changed (don't write to screen unless change to avoid flicker)
  red=128; 
  green=128; 
  blue=128;         // initially set to mid-white
  Esplora.writeRGB(red, green, blue);   // Set LED initially in center which is moderate white
  EsploraTFT.background(0,0,0); //sfondo nero
  EsploraTFT.stroke(0,255,0); //colore del testo verde
  EsploraTFT.text("EsploraTest - RGB LED Test",0,0);
  EsploraTFT.stroke(255,255,255); //colore del testo bianco
  EsploraTFT.text("Joystick U/D per +- Rosso",0,14);
  EsploraTFT.text("Joystick L/R per +- Verde",0,24);
  EsploraTFT.text("Slider L/R per +- Blue",0,34);
  EsploraTFT.stroke(255,0,0); //colore del testo rosso
  EsploraTFT.text("Red",0,50);    
  EsploraTFT.stroke(0,255,0); //colore del testo verde
  EsploraTFT.text("Green",0,70);
  EsploraTFT.stroke(0,0,255); //colore del testo blu
  EsploraTFT.text("Blue",0,90);
  EsploraTFT.stroke(255,255,0); //colore del testo blu
  EsploraTFT.text("Premere il joystick",0,107);
  EsploraTFT.text("quando finito ",0,117);


  while(Esplora.readJoystickButton()==HIGH) {  // keep displaying values until joystick clicked down  

    if(Esplora.readJoystickY() > 20)   // if the joystick is moved significantly down
      if(red > 0) red--;
    if(Esplora.readJoystickY() < -20)  // if the joystick is moved significantly up
      if(red < 255) red++;
    if(Esplora.readJoystickX() > 20)   // if the joystick is moved significantly left
      if(green > 0) green--;
    if(Esplora.readJoystickX() < -20)  // if the joystick is moved significantly right
      if(green < 255) green++;
    blue=map(Esplora.readSlider(), 1024, 0, 0, 255);  // Map slider to 0-255 range for blue

    if(red!=oldred) {
      EsploraTFT.stroke(0,0,0);
      EsploraTFT.fill(0,0,0);
      EsploraTFT.rect(40,50, 29, 7); //Cancellazione valore
      EsploraTFT.stroke(255,0,0); //colore del testo rosso 
      redval = String (red);
      redval.toCharArray (redPrintout,5);
      EsploraTFT.text(redPrintout ,40,50);
      //      displayInt2(red,   40, 50, ST7735_RED,   ST7735_BLACK);
      oldred=red;
    }
    if(green!=oldgreen) {
      EsploraTFT.stroke(0,0,0);
      EsploraTFT.fill(0,0,0);
      EsploraTFT.rect(40,70, 29, 7); //Cancellazione valore
      EsploraTFT.stroke(0,255,0); //colore del testo verde 
      greenval = String (green);
      greenval.toCharArray (greenPrintout,5);
      EsploraTFT.text(greenPrintout ,40,70);  
      oldgreen=green;
    }
    if(blue!=oldblue) {
      EsploraTFT.stroke(0,0,0);
      EsploraTFT.fill(0,0,0);
      EsploraTFT.rect(40,90, 29, 7); //Cancellazione valore
      EsploraTFT.stroke(0,0,255); //colore del testo blu 
      blueval = String (blue);
      blueval.toCharArray (bluePrintout,5);
      EsploraTFT.text(bluePrintout ,40,90); 
      oldblue=blue;
    }
    Esplora.writeRGB(red, green, blue);  // set LED color
    delay(35);  // leggera attesa
  }
}

void TestSound() {  // text Sound "buzzer" on Esplora interactively
  unsigned int freq;
  unsigned int oldfreq;  // value to see if a value changed (don't write to screen unless change to avoid flicker)
  int state=0;
  freq=0;  
  oldfreq=0;
  Esplora.noTone(); // ensure tone is off
  EsploraTFT.background(0,0,0); //sfondo nero
  EsploraTFT.stroke(255,0,255); //colore del testo magenta
  EsploraTFT.text("EsploraTest - Buzzer",0,0);
  EsploraTFT.stroke(255,255,255); //colore del testo bianco
  EsploraTFT.text("Usare lo slider per variare",0,14);
  EsploraTFT.text("la frequenza del suono",0,27);
  EsploraTFT.text("Premere 1 per sospendere",0,40);
  EsploraTFT.text("l'emissione del suono",0,53);
  EsploraTFT.stroke(0,255,0); //colore del testo verde
  EsploraTFT.text("Frequenza: ",0,70);
  EsploraTFT.stroke(255,255,0); //colore del testo giallo
  EsploraTFT.text("Premere il joystick",0,107);
  EsploraTFT.text("per uscire",0,117); 

  while(Esplora.readJoystickButton()==HIGH) {  // keep displaying values until joystick clicked down  
    freq=map(Esplora.readSlider(), 1024, 0, 0, 10000); // Map slider to 0-10,000 hz
    if(abs(freq-oldfreq)>=30) {  // try to smooth out changes, still noisy, don't know why
      freq1= String (freq); 
      // Convertire la stringa in un array di caratteri
      freq1.toCharArray (freqPrintout, 6);
      EsploraTFT.stroke(0,0,0);
      EsploraTFT.fill(0,0,0);
      EsploraTFT.rect(70,65,30,20);
      EsploraTFT.stroke(0,255,0); //colore del testo verde
      EsploraTFT.text(freqPrintout,70,70);// display frequency value
      EsploraTFT.text("Hz",105,70);// display frequency value
      oldfreq= freq;
      state=1;  // slider change - we want a sound
      if (state==1) Esplora.tone(freq,5000);  // play sound for 5 seconds
    }
    if(Esplora.readButton(SWITCH_1)==LOW && state==1) {
      Esplora.noTone();  // switch activated, no sound wanted
      state=0;
    }
  }
  Esplora.noTone();   // turn off sound when you exit test
}

void TestOutputs() {

  // dichiarazione delle variabili. I valori sono confrontati con
  // quelli esistemti per verificare il cambiamento
  unsigned int slidervalue = 0, oldslidervalue=9999; // update a display value if the
  unsigned int lightvalue=0, oldlightvalue=9999;     // variable is the same as the previous
  unsigned int joybuttonvalue=0, oldjoybuttonvalue=9999; // one through a button poll loop
  unsigned int micvalue;
  int celsius, old_c=-999;
  int fahrenheit, old_f=-999;
  int x_axis, y_axis, z_axis;  // accelerometer read values
  int oldx=0, oldy=0, oldz=0;  // accelerometer stored values
  //   Draw fixed screen elements first and do not redraw to avoid flicker
  EsploraTFT.background(0,0,0); //sfondo nero
  //     Display fixed text values
  EsploraTFT.stroke(0,255,0); //colore del testo verde
  EsploraTFT.text("Esplora Test - Outputs",0,0);
  EsploraTFT.stroke(255,255,255); //colore del testo bianco 
  EsploraTFT.text("Pulsanti:",0,14);
  EsploraTFT.text("Slider:",0,28);
  EsploraTFT.text("Light:",77,28);
  EsploraTFT.text("Joystick:",0,42);
  EsploraTFT.text("Microfono  :",0,56);
  EsploraTFT.text("Temperatura:",0,70);
  EsploraTFT.text("Accelerometro X   Y   Z",0,84);
  EsploraTFT.stroke(255,255,0); //colore del testo giallo
  EsploraTFT.text("Premere il joystick",0,107);
  EsploraTFT.text("per uscire",0,117);

  while(Esplora.readJoystickButton()==HIGH) {  // keep displaying values until joystick clicked down  

    // for controller output, Iterate through all the buttons:
    for (byte thisButton=0; thisButton<8; thisButton++) {
      boolean lastState = buttonStates[thisButton];
      boolean newState = Esplora.readButton(buttons[thisButton]);
      if (lastState != newState) { // Something changed!
        switch(thisButton) {
        case 0:
          if(newState==1){
            EsploraTFT.stroke(255,255,255); //colore del testo bianco
            EsploraTFT.text("Down",56,42);
          }
          else{
            EsploraTFT.stroke(0,255,0); //colore del testo verde
            EsploraTFT.text("Down",56,42);
          }
          break;
        case 1:
          if(newState==1){
            EsploraTFT.stroke(255,255,255); //colore del testo bianco
            EsploraTFT.text("Left",100,42);
          }
          else{ 
            EsploraTFT.stroke(0,255,0); //colore del testo verde
            EsploraTFT.text("Left",100,42);
          }
          break;
        case 2:
          if(newState==1) {
            EsploraTFT.stroke(255,255,255); //colore del testo bianco
            EsploraTFT.text("Up",83,42); 
          }

          else {
            EsploraTFT.stroke(0,255,0); //colore del testo verde
            EsploraTFT.text("Up",83,42);
          }
          break;
        case 3:
          if(newState==1){ 
            EsploraTFT.stroke(255,255,255); //colore del testo bianco
            EsploraTFT.text("Right",130,42); 
          }
          else{
            EsploraTFT.stroke(0,255,0); //colore del testo verde
            EsploraTFT.text("Right",130,42);
          }      

          break;
        case 4:
          if(newState==1){ 
            EsploraTFT.stroke(255,255,255); //colore del testo bianco
            EsploraTFT.text("S4",104,14);
          } 

          else {
            EsploraTFT.stroke(0,255,0); //colore del testo verde
            EsploraTFT.text("S4",104,14);
          }  
          break;
        case 5:
          if(newState==1){ 
            EsploraTFT.stroke(255,255,255); //colore del testo bianco
            EsploraTFT.text("S2",68,14); 
          } 
          else{ 
            EsploraTFT.stroke(0,255,0); //colore del testo verde
            EsploraTFT.text("S2",68,14);
          }  

          break;
        case 6:
          if(newState==1){
            EsploraTFT.stroke(255,255,255); //colore del testo bianco
            EsploraTFT.text("S3",86,14);
          }
          else{
            EsploraTFT.stroke(0,255,0); //colore del testo verde
            EsploraTFT.text("S3",86,14);
          } 
          break;
        case 7:
          if(newState==1) 
          {
            EsploraTFT.stroke(255,255,255); //colore del testo bianco
            EsploraTFT.text("S1",50,14);
          }

          else 
          {
            EsploraTFT.stroke(0,255,0); //colore del testo verde
            EsploraTFT.text("S1",50,14);
          }
          break;
        } 
      }
      // Store the new button state, so you can sense a difference later:
      buttonStates[thisButton] = newState;
    }
    joybuttonvalue = Esplora.readJoystickSwitch();
    if(joybuttonvalue) {  // Joystick depressed
      //displayString(0,42,"Joystick:",ST7735_GREEN); use for screen switch?
    }
    else {
    }  
    slidervalue = Esplora.readSlider();
    if(slidervalue != oldslidervalue) {   // Slider changed
      EsploraTFT.stroke(0,0,0);
      EsploraTFT.fill(0,0,0);
      EsploraTFT.rect(45,28, 29, 7); //Cancellazione valore
      EsploraTFT.stroke(255,0,255); //colore del testo magenta 
      sliderval = String (slidervalue);
      sliderval.toCharArray (sliderPrintout,5);
      EsploraTFT.text(sliderPrintout ,45,28);
      oldslidervalue=slidervalue;  // save for next time
    }
    lightvalue = Esplora.readLightSensor();
    if(lightvalue!=oldlightvalue)  {  // light sensor changed
      EsploraTFT.stroke(0,0,0);
      EsploraTFT.fill(0,0,0);
      EsploraTFT.rect(115,28, 29, 7); //Cancellazione valore
      EsploraTFT.stroke(255,0,255); //colore del testo magenta 
      lightval = String (lightvalue);
      lightval.toCharArray (lightPrintout,5);
      EsploraTFT.text(lightPrintout ,115,28);
      //      displayInt(lightvalue,110,28,ST7735_WHITE,ST7735_BLACK);
      oldlightvalue=lightvalue;
    }

    String micvalue = String( Esplora.readMicrophone());
    micvalue.toCharArray(soundPrintout, 5);
    EsploraTFT.stroke(0,0,0);
    EsploraTFT.fill(0,0,0);
    EsploraTFT.rect(75,56, 20, 10);
    EsploraTFT.stroke(0,255,255);
    EsploraTFT.text(soundPrintout, 75, 56);

    celsius = Esplora.readTemperature(DEGREES_C);
    fahrenheit = Esplora.readTemperature(DEGREES_F);

    if(celsius!=old_c) {
      celsiusval = String (celsius);
      celsiusval.toCharArray(celsiusPrintout, 5);
      EsploraTFT.stroke(0,0,0);
      EsploraTFT.fill(0,0,0);
      EsploraTFT.rect(75,70, 20, 10);
      EsploraTFT.stroke(255,0,0);
      EsploraTFT.text(celsiusPrintout, 75, 70);
      EsploraTFT.text("C", 90, 70); 
    }

    if(fahrenheit!=old_f) {
      fahrenheitval = String (fahrenheit);
      fahrenheitval.toCharArray(fahrenheitPrintout, 5);
      EsploraTFT.stroke(0,0,0);
      EsploraTFT.fill(0,0,0);
      EsploraTFT.rect(100,70, 20, 10);
      EsploraTFT.stroke(255,0,0);
      EsploraTFT.text(fahrenheitPrintout, 100, 70);
      EsploraTFT.text("F", 115, 70);     
    }
    old_c=celsius; 
    old_f=fahrenheit;


    x_axis = Esplora.readAccelerometer(X_AXIS);
    y_axis = Esplora.readAccelerometer(Y_AXIS);
    z_axis = Esplora.readAccelerometer(Z_AXIS);
    if(x_axis!=oldx) {
      x_val = String (x_axis);
      x_val.toCharArray(x_axisPrintout, 5);
      EsploraTFT.stroke(0,0,0);
      EsploraTFT.fill(0,0,0);
      EsploraTFT.rect(30,96, 29, 7);
      EsploraTFT.stroke(255,255,255);
      EsploraTFT.text(x_axisPrintout, 30, 96);
    }
    if(y_axis!=oldy) {
      y_val = String (y_axis);
      y_val.toCharArray(y_axisPrintout, 5);
      EsploraTFT.stroke(0,0,0);
      EsploraTFT.fill(0,0,0);
      EsploraTFT.rect(70,96, 29, 7);
      EsploraTFT.stroke(255,255,255);
      EsploraTFT.text(y_axisPrintout, 70, 96);
    }
    if(z_axis!=oldz) {
        z_val = String (z_axis);
      z_val.toCharArray(z_axisPrintout, 5);
      EsploraTFT.stroke(0,0,0);
      EsploraTFT.fill(0,0,0);
      EsploraTFT.rect(110,96, 29, 7);
      EsploraTFT.stroke(255,255,255);
      EsploraTFT.text(z_axisPrintout, 110, 96); 
 
    }
    oldx=x_axis; 
    oldy=y_axis; 
    oldz=z_axis;  // store values for comparison next refresh

/*
     Attesa di  50 ms tra un controllo e un altro pulsante.
      Quando viene premuto o rilasciato un interruttore meccanico, 
      il contatti possono rimbalzare molto rapidamente. Se il controllo è fatto troppo
      veloce, questi rimbalzi possono essere confusi e
      si potrebbe condurre a un comportamento imprevisto.
      */
      
    delay(50);
  }
}

Programma di test della memoria SD

Un altro programma presente negli allegati permette di testare la possibilità di lettura di file immagine bitmapped da mostrare poi sul display TFF. Per utilizzare il programma occorrerà avere una memoria mini-SD con una capacità da 1 MB, su cui memorizzare i file .bmp allegati. Si inserirà quindi la memoria nell’apposito alloggiamento presente sul display, nella parte superiore, lato presa USB. Una volta caricato il programma saranno mostrati ciclicamente i file sul display, l’accensione del led RGB in verde confermerà il riconoscimento corretto del file, l’accensione del led di colore rosso segnalerà un’anomalia.

 
Programma Esplora_test_TFT Files immagini

 

 
/*
 Esplora TFT Bitmap Logos
 Programma per testare la lettura di immagini
 da SD
 By Adriano Gandolfo www.adrirobot.it
 */

// include le necessarie librerie
#include <Esplora.h>
#include <SPI.h>
#include <SD.h>
#include <TFT.h>

// si definisce il pin ESPLORA collegato alla linea di
// selezione del circuito integrato per scheda SD
#define SD_CS    8

// questa variabile rappresenta l'immagine da disegnare sullo schermo
PImage slide;
String numero;
void setup() {
  // inizializzazione dello schermo e messsaggio iniziale
  EsploraTFT.begin();
  EsploraTFT.background(0, 0, 0);
  EsploraTFT.setTextSize(1);
  EsploraTFT.stroke(0,255,0); //colore del testo verde
  EsploraTFT.text("Arduino Esplora",0,0);
  EsploraTFT.stroke(255,255,0); //colore del testo giallo
  EsploraTFT.text("Test SD - LCD Bitmap",0,16);
  EsploraTFT.setTextSize(1);
  // Tentare di accedere alla scheda SD. Se non funziona (ad esempio
  // Nessuna scheda presente), il LED di ESPLORA diventa rosso.
  EsploraTFT.text("Inizializzazione SD card",0,32);
  if (!SD.begin(SD_CS)) {
    EsploraTFT.stroke(255,0,0); //colore del testo rosso
    EsploraTFT.text("Fallita!",0,45);
    Esplora.writeRed(255);
    return;
  }
  EsploraTFT.stroke(0,255,0); //colore del testo verde
  EsploraTFT.text("OK !",0,45);
  EsploraTFT.stroke(255,0,255); //colore del testo magenta
  EsploraTFT.text("Premere il tasto S1",0,65);

  //Routine attesa pressione tasto S1
  int S1;  // holds values of switches 1 to 3
  S1=HIGH; 
  while(S1==HIGH ) { 
    S1 = Esplora.readButton(SWITCH_1);

    if(S1==LOW) 
      demo();  // se si preme il tasto viene avviata le demo
  }
}
// Ora si accederà alla scheda SD, se il caricamento non
// andrà a buon fine si accenderà il led rosso
void demo()
{
  Esplora.writeRGB(0, 0, 0);
  for (int i=1; i <10; i++)
  { 
    Esplora.writeRGB(0, 0, 0);
    numero = String (i);
    String immagine = String (numero + ".bmp");
    char immagine_array[6];
    immagine.toCharArray (immagine_array, sizeof(immagine_array));
    slide = EsploraTFT.loadImage(immagine_array);
    if (slide.isValid()) {
      Esplora.writeGreen(255);
    }
    else
      Esplora.writeRed(255);
    EsploraTFT.image(slide, 0, 0);
    //tempo di attesa per nuova immagine
    delay(1000);
  }
  EsploraTFT.background(0, 0, 0);
  EsploraTFT.setTextSize(2);
  EsploraTFT.stroke(0,255,0); //colore del testo verde
  EsploraTFT.text("Test completo!",0,0);
}
void loop()
{
}

Elenco revisioni
14/08/2013 Emissione preliminare
Private Policy Cookie Policy Termini e Condizioni