Télécommande voiture RC à l'aide d'une arduino et du module AD9850

Bonjour,
je vous écrit car j’ai eu problème sur mon projet.
En effet j’essaye de recréer une télécommande de voiture RC à l’aide d’une carte arduino et d’un module DDS_AD9850(HC-SR08) pour un projet scolaire, je ne connais pas très bien le C/C++ car je travaille principalement sur python ( je suis en prépa PSI) et c’est pourquoi j’ai essayé de comprendre un code trouvé sur le blog Learn on the fly : Controlling a 27mhz remote control car with AD9850 and arduino uno pour mener à bien mon projet.
Ce code doit présenter une ou plusieurs erreurs car je n’arrive pas à le téléverser sur ma carte (arduino mega 2560).
Voici le code:

#define PLEN 550
#define PRELEN PLEN*3
#define FREQUENCY 542879
#define FREQUENCY2 0
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnNONE 4
int adc_key_in = 0;
int key = 0;
#include <SPI.h>
uint32_t frequency = FREQUENCY;
uint32_t tword = frequency * 3436 / 100;
byte W[5] = { 0, 0, 0, 0, 0 };
const unsigned char PS_128 = (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
const unsigned char PS_32 = (1 << ADPS2) | (1 << ADPS0);
const unsigned char PS_16 = (1 << ADPS2);
int mic = 512;

void setup (){
Serial.begin (9600);
DDRD = DDRD | B01100000;
PORTD = 0x00;
pinMode (A0, INPUT);
SPI.setDataMode (SPI_MODE0);
SPI.setClockDivider (SPI_CLOCK_DIV2);
SPI.setBitOrder (LSBFIRST);
SPI.begin ();
ADCSRA &= ~PS_128;
ADCSRA |= PS_32;
}

void loop (){
key = read_key ();
switch (key)
{
case btnRIGHT:
{
Serial.println (“FORWARD”);
sendcommand (10);
break;
}
case btnLEFT:
{
Serial.println (“RIGHT”);
sendcommand (34);
break;
}
case btnUP:
{
Serial.println (“BACKWARD”);
sendcommand (40);
break;
}
case btnDOWN:
{
Serial.println (“LEFT”);
sendcommand (28);
break;
}
case btnNONE:
{
//Serial.println(“NONE”);
break;
}
}
}

void preample (int len){
int i;
for (i = 0; i < len; i++) {
setfreq (FREQUENCY);
delayMicroseconds (PRELEN);
setfreq (FREQUENCY2);
delayMicroseconds (PLEN);
}
}

void command (int len){
int i;
for (i = 0; i < len; i++) {
setfreq (FREQUENCY);
delayMicroseconds (PLEN);
setfreq (FREQUENCY2);
delayMicroseconds (PLEN);
}
}

void setfreq (uint32_t frequency){
tword = frequency * 1718;
W[0] = (byte) tword;
W[1] = (byte) (tword >> 8 );
W[2] = (byte) (tword >> 16);
W[3] = (byte) (tword >> 24);
W[4] = 0;
PORTD = B01000000;
PORTD = 0x00;
for (int j = 0; j < 5; j++) {
SPI.transfer (W[j]);
}
PORTD = B01000000;
PORTD = 0x00;
}

int read_key (){
adc_key_in = analogRead (0);
if (adc_key_in > 600)
return btnNONE;
if (adc_key_in > 500)
return btnRIGHT;
if (adc_key_in > 450)
return btnUP;
if (adc_key_in > 400)
return btnDOWN;
if (adc_key_in < 400)
return btnLEFT;
return btnNONE;
}

void sendcommand (int n){
for (int i = 0; i < 5; i++) {
preample (4);
command (n);
}
}

Je ne sais pas comment mettre les balises. Mes sincères excuses à ceux qui auraient du mal à lire le code malgré tout.
Merci d’avance à ceux qui prendront le temps de m’aider.

bonjour,
1- rubrique Réalisations et Projets Finis et non pour les demandes, donc click sur report to moderator afin de faire déplacer le post
2- un clavier a des touches de ponctuation et retour à la ligne afin de faire un texte plus digeste
3- code non mis entre balise code

une fois tout cela fait, on répondra à la question