Vraag


Acties:
  • 0 Henk 'm!

  • andydewit
  • Registratie: December 2013
  • Laatst online: 05-11-2024
Allereerst, ik ben redelijk nieuw in de Arduino en de C/C++ wereld (heb in 2010 een duemilanove gekocht, na enkele maanden niet meer gebruikt). Gebruik nu een Mega 2560. Onderstaande code krijg ik niet werkend. De volgende error verschijnt:
quote: Arduino IDE
invalid conversion from 'char*' to 'uint8_t {aka unsigned char}' [-fpermissive]
Lijn: int sensor_value = analogRead(sensors_pin[i]);
C++:
1
2
3
4
5
6
7
8
9
char* sensors_pin[]  = {"A0", "A1", "A2", "A3"}; // Ports of the pressure sensors
int sensors_trigger[] = {200, 400, 600, 800}; // Triggers of when the sensors are hit

int sensors_values[sizeof(sensors_pin)]; // Values of the sensors

for(int i = 0; i <= sizeof(sensors_pin); i++) {
      int sensor_value = analogRead(sensors_pin[i]);
      sensors_values[i] = sensor_value;
}


Weet iemand hoe ik dit opgelost krijg? Ik kom er echt niet uit.

Beste antwoord (via andydewit op 17-06-2016 13:32)


  • Bravo51
  • Registratie: April 2008
  • Laatst online: 12:13
Je krijgt deze fout van de compiler omdat de namen van de pinnen een define zijn. Dus pin A0 is met een define gelinked aan de echte pin van de AVR.

Je hoeft in je array dus niet de tekst te stoppen.

Als je de sensors_pin[] array herdefineerd als volgt zou het moeten werken:

C:
1
 int sensors_pin[] = {A0, A1, A2}; 

Alle reacties


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • Bravo51
  • Registratie: April 2008
  • Laatst online: 12:13
Je krijgt deze fout van de compiler omdat de namen van de pinnen een define zijn. Dus pin A0 is met een define gelinked aan de echte pin van de AVR.

Je hoeft in je array dus niet de tekst te stoppen.

Als je de sensors_pin[] array herdefineerd als volgt zou het moeten werken:

C:
1
 int sensors_pin[] = {A0, A1, A2}; 

Acties:
  • 0 Henk 'm!

  • andydewit
  • Registratie: December 2013
  • Laatst online: 05-11-2024
Bravo51 schreef op vrijdag 17 juni 2016 @ 13:26:
Je krijgt deze fout van de compiler omdat de namen van de pinnen een define zijn. Dus pin A0 is met een define gelinked aan de echte pin van de AVR.

Je hoeft in je array dus niet de tekst te stoppen.

Als je de sensors_pin[] array herdefineerd als volgt zou het moeten werken:

C:
1
 int sensors_pin[] = {A0, A1, A2}; 
Je bent geweldig, het werkt! _/-\o_