Erro do Processing para o Arduino "println(Serial.list();"

Boas pessoal.

Sou novo nisto e precisava de ajuda.
Estava a tentar realizar um exercício com o nome “Tweak the Arduino Logo” e deparo-me com um problema.
No programa PROCESSING dá-me sempre um erro no codigo na linha onde aparece isto escrito “println(Serial.list())”.

Arduino

void setup() {
   Serial.begin(9800);
   }

void loop() {
   Serial.write(analogRead(A0)/4);
   delay(100);
}

PROCESSING

import processing.serial.*;

Serial myPort;

PImage logo;

int bgcolor = 0;

void setup(){
  colorMode(HSB, 255);
  logo = loadImage("http://arduino.cc/logo.png");
  size(logo.width * 2, logo.height * 2);
  
  println("Avilable serial ports");
  println(Serial.list()); // estou sempre a ter erro  nesta linha
  myPort = new Serial(this, "COM3", 9600);
}

void draw()
{
   if(myPort.available() > 0)
   {
     bgcolor = myPort.read();
     myPort.clear();
     println(bgcolor);
   }
   background(bgcolor, 255, 255);
   image(logo,logo.width / 2, logo.height / 2);

a discrição do erro está anexado

Com os melhores cumprimentos :slight_smile:

Não conheço o Processing, mas eu trocava a linha:

   Serial.write(analogRead(A0)/4);

por

   Serial.println(analogRead(A0)/4);

Já agora, o número desta:

   Serial.begin(9800);

devia ser igual ao desta:

  myPort = new Serial(this, "COM3", 9600);

Isto é a parte da comunicação e deviam falar os dois a mesma língua (e devia ser 9600 nos dois).

É só tirar essa linha que vai funcionar normal

fabio_h:
É só tirar essa linha que vai funcionar normal

Qual linha?

Boas amigos :slight_smile:

Já descobri o erro. :slight_smile:

Segui o teu conselho luisilva.
Corregi os 9800 para 9600.
e alterei a linha do codigo da ARDUINO.

Serial.write(analogRead(A0)/4);

por este

Serial.println(analogRead(A0)/4);

mas isto dava me um erro no PROCESSING, dizia-me que a porta porta COM estava ocupada.
voltei por como estava.

No codigo do PROCESSING alterei a seguinte linha e já funciona.

import processing.serial.*;
Serial myPort;
PImage logo;
int bgcolor = 0;


void setup() {
  colorMode (HSB, 255);
  logo = loadImage ("http://arduino.cc/logo.png");
  size(200,200);   // Dava erro porque não estava a definir as medidas da janela.
  println("Available serial ports: ");
  println(Serial.list());
  myPort = new Serial(this, "COM3", 9600);
}
  void draw() {
    bgcolor = bgcolor +1;
    if (bgcolor > 255) bgcolor = 0;
  if (myPort.available() > 0) {
    bgcolor = myPort.read();
    println(bgcolor);
  }
  background(bgcolor, 255, 255);
  image(logo, 0, 0);
  }

Obrigado pelas ajudas :slight_smile:

Um abraço