E45_TTL_100, Lora transceiver, tested on KL25Z connection with E45 via RS232. Power 100 mW, 868 MHz, range 2 km
main.cpp
- Committer:
- GerritPathuis
- Date:
- 2018-02-17
- Revision:
- 2:329d3f88af27
- Parent:
- 1:2b8fa0144c4f
- Child:
- 3:19a244789b2b
File content as of revision 2:329d3f88af27:
#include "mbed.h" #include "MODSERIAL.h" // E45-TTL-100 RADIO------KL25Z // AUX--------------------PTD4 // M1---------------------PTA12 // M0---------------------PTA4 // RXD--------------------PTE22(TX) // TXD--------------------PTE23(RX) // LORA Radio Transmits @ 868 mHz // Expected range 2000m // https://quadmeup.com/wp-content/uploads/2017/09/E45-TTL-100_Datasheet_EN_v1.2.pdf Ticker timer; MODSERIAL pc(USBTX, USBRX, 512); // tx, rx of the pc, (512 char buffer) MODSERIAL e45(PTE22, PTE23, 512); // tx, rx of the E45 radio (512 char buffer) InterruptIn aux(PTD4); // AUX the E45 radio DigitalOut m1(PTA12,PullUp); // M1 the E45 radio DigitalOut m0(PTA4, PullUp); // M0 the E45 radio DigitalOut myled(LED1); // Kl25x led1 void flank_up() { myled=1; //Rising Edge Detected } void flank_down() { myled=0; //Falling Edge Detected } void timer_func() // Send something every 3s { if (myled == 1) { // AUX is high (Buffer empty), send something wait_ms(3); e45.puts("123"); while(myled==0) { pc.puts("Wait for end Transmission\n\r"); wait_ms(1); } pc.puts("\n\rRadio has sent 123\n\r"); } } int main() { pc.baud(115200); e45.baud(9600); pc.puts("\n\r\nE45-TTL-100 LORA\n\r"); aux.rise(&flank_up); //Service RISING EDGE Interrupt aux.fall(&flank_down); //Service FALLING EDGE Interrupt // select mode // Transparant Transmission m0= 0; m1= 0; wait_ms(1); // wait for E45 to be ready while(myled==0) { pc.puts("Wait for E45 reset\n\r"); wait_ms(20); } wait_ms(2); timer.attach(&timer_func, 3.0); pc.puts("E45 is now ready to send and receive \n\r"); while(1) { if (myled == 0) { // AUX is low, Chars received wait_ms(3); while(myled==0) { if (e45.readable()) { pc.putc(e45.getc()); //send to pc } } } } }