Test - Besoin d'aide

Bonjour,

Je suis entrain de faire une test avec mon arduino actuellement j’ai fais le code ci-dessous :

//Fonction bit à 1
const int a = 5; // mettre à 8.3
void bit1()
{
  digitalWrite(2, HIGH);
  delay(a);
  digitalWrite(2, LOW);
  delay(a);
}
//Fonction bit à 0
void bit0()
{
  digitalWrite(2, LOW);
  delay(a);
  digitalWrite(2, HIGH);
  delay(a);
}
//Fonction envoi d'octet
void envoiOctet(unsigned char octet)
{
  // envoi les bits de poids faible en premier
  for (int i=0; i<8; i++)
  {
    if (octet&0x01)
      bit1();
    else
      bit0();

    octet >>= 1;
  }
}
//Fonction envoi de la trame
void envoiTrame(unsigned char *tab, int n)
{
  for(int i=0; i<n; i++)
    envoiOctet(tab[i]);
}
void setup() 
{
  Serial.begin(9600);
  pinMode(2, OUTPUT);
}
void loop() 
{
  String tableau = Serial.readString();          // récupération de la chaine de caractère du buffer dans tableau
  unsigned char *tabconv;
  tabconv = new unsigned char[tableau.length()];
  tableau.toCharArray((char *)tabconv, tableau.length());
  Serial.print(envoiTrame(tabconv, tableau.length()));
}

J’aimerais pouvoir avoir un retour sur le moniteur car j’envoie à manger depuis mon buffer une trame de lettre que je souhaite transformer via le manchester en une suite de 0 et 1. Le soucis c’est que je rencontre cette erreur qui me rend fou.

Erreur :

Arduino_led_allumage:57: error: invalid use of void expression
Serial.print(envoiTrame(tabconv, tableau.length()));

Voilà, est-ce que quelqu’un pourrait me dire si j’utilise le bon code pour cette ligne ?

Bonjour,

envoiTrame() ne renvoie rien (void) alors que Serial.print attend un argument (char *, int, float ...)

Ah d’accord ! Le con mais bien sûr. La perte de temps pour une erreur si bête…