Parlons Arduino > Composants

Teensy 3.1, 3.2 - Sonorisation locomotive

<< < (33/33)

Benoit92:
Bon, maintenant, cela marche (petite inversion de fil).
Vu avec un oscilloscope USB que je sors quand j'ai un "gros" problème.
La liaison série entre l'Arduino Nano et le Teensy 3.2 est maintenant debuggé.

J'ai ajouté également "Serial1.clear();" car sinon, le Teensy ne voit pas les changements de commande de lecture de fichier (il reste toujours sur le même fichier).

Donc, ci-joint, le code du Teensy qui fonctionne :


--- Code: ---// Diesel Henschel DHG 500
// Teensy 3.2 + SPI Flash + Serial1(-> Arduino Nano)
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>
#include <SoftwareSerial.h>

    //'*' Type on Serial Monitor
    //DHG_STA.TRW = 'a' Engine start
    //DHG_STO.TRW = 'z' Stop Engine
    //DHG_HOR.TRW = 'e' Horn
    //DHG_SPE.TRW = 'r' Driving
    //DHG_BRA.TRW = 't' Brake
    //DHG_IDL.TRW = 'y' Idle
    //DHG_UNC.TRW = 'u' Uncoupling
    //DHG_ACC.TRW = 'i' Acceleration

//SoftwareSerial mySerial(0, 1); // RX, TX

const int FLASH_CHIP_SELECT = 10; 
#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>

// GUItool: begin automatically generated code
AudioPlaySerialflashRaw  playFlashRaw1;  //xy=228,273
AudioOutputAnalog        dac1;           //xy=751,337
AudioConnection          patchCord1(playFlashRaw1, 0, dac1, 0);
// GUItool: end automatically generated code

char Data;     // Read serial data
char PrevData;  // Read previous serial data
int i = 0;
int Led13 = 13;

void setup() {
    digitalWrite(Led13, HIGH);
    pinMode(Led13, OUTPUT);
    Serial.begin(9600); // Serial setup
    while (!Serial && millis()<500 );
    Serial.println("Diesel Henschel DHG 500");
   
    Serial1.begin(9600); // Serial1 setup
    while (!Serial1 && millis()<500 );
    AudioMemory(50);//
//    analogReference(EXTERNAL);// 3,3V Amplitude DAC

//************************************
//  Set up SPI Teensy without audio Card
  SPI.setMOSI(11); //7
  SPI.setMISO(12);
  SPI.setSCK(14);
//************************************
    delay(2000);
    if (!SerialFlash.begin(FLASH_CHIP_SELECT)) {
        while (1){
            Serial.println ("Cannot access SPI Flash chip");
            delay (10000);
        }
    }
}
    void playFile1(const char *filename)// Play audio file function
    {
      SerialFlashFile ff = SerialFlash.open(filename);
      Serial.print("Playing file1: ");
      Serial.println(ff);
      playFlashRaw1.play(filename);
     // Simply wait for the file to finish playing.
     while (playFlashRaw1.isPlaying()) {
     }
    }
   
void loop() {

  if ( Serial1.available() ) {
    Data = Serial1.read();
    Serial1.clear();
    Serial.println(Data);
  }
  else {
    Serial.println("Nothing");
  }

  switch (Data) {
       case 'a':{  // Play Soundfile in loop : Start
            playFile1("DHG_STA.TRW");
                              Serial.println("DHG_STA.TRW");
            Data = 'y';
            playFile1("DHG_IDL.TRW");
                              Serial.println("DHG_IDL.TRW");
        break;
       }
      case 'z':{  // Play Soundfile in loop : Stop

           playFile1("DHG_STO.TRW");
                              Serial.println("DHG_STO.TRW");
           Data = 'o';
      break;
      }   
      case 'e':{   // Play Soundfile only once : Horn 
           playFile1("DHG_HOR.TRW");
                              Serial.println("DHG_HOR.TRW");
           Data=PrevData; // Continue with previous soundfile
           Serial.println(Data);
      break;
           }
     case 'r':{  // Play Soundfile in loop : Full Speed
           PrevData = 'r';
           playFile1("DHG_SPE.TRW");
                              Serial.println("DHG_SPE.TRW");
     break;
    }   
     case 't':{  // Play Soundfile in loop : Brake 
           PrevData = 't';
           playFile1("DHG_BRA.TRW");
           Data = 'y';
           playFile1("DHG_IDL.TRW");
     break;
    } 
     case 'y':{  // Play Soundfile in loop : Idle
         PrevData = 'y';
         playFile1("DHG_IDL.TRW");
                             Serial.println("DHG_IDL.TRW");
     break;
    }
     case 'u':{  // Play Soundfile in loop : Uncoupling
         PrevData = 'u';
         playFile1("DHG_UNC.TRW");
                             Serial.println("DHG_UNC.TRW");
         Data = 'y';
         playFile1("DHG_IDL.TRW");
                              Serial.println("DHG_IDL.TRW");
     break;
    }
     case 'i':{  // Play Soundfile in loop : Uncoupling
         PrevData = 'i';
         playFile1("DHG_ACC.TRW");
                             Serial.println("DHG_UNC.TRW");
         Data = 'r';
         playFile1("DHG_IDL.TRW");
                              Serial.println("DHG_IDL.TRW");
     break;
    }
 }
}
--- Fin du code ---

Navigation

[0] Index des messages

[*] Page précédente

Utiliser la version classique