Pages: 1 [2]   Go Down
Author Topic: Arduino + VB + Comunicação SerialPort + Dúvidas  (Read 2129 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Depende do shield... Mas é provável...
Qual era o modelo de shield que estavas a pensar usar? Tens a certeza que te queres meter nisso com o que sabes de C?

O shield é este http://arduino.cc/en/uploads/Main/ArduinoEthernetShield_R3_Front.jpg

Ya vai ser complicado mas era a minha ideia ..

Só queria criar um site simples para desligar e ligar via internet, penso que não é muito complicado (acho eu).
Não sei é até que ponto dá para estar a utilizar o programa em vb e ao mesmo tempo ligar e desligar via ethernet
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3115
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sim, com esse shield vais perder pinos com PWM.

Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sim, com esse shield vais perder pinos com PWM.



Ya, o pino 10 pelo menos.
Mas mesmo assim consigo dar a volta, basta tirar uma divisao, sem problema
« Last Edit: March 27, 2013, 11:30:10 am by ruiacm10 » Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3115
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

3... pelas minhas contas.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

3... pelas minhas contas.

Tive a mudar o programa e ficou assim no arduino:
Code:
int PinoV = 11;
int PinoH= 10;
int PinoS=9;
int PinoC = 6;
int PinoJ= 5;
int PinoR=7; //Não é PWM
int PinoQ = 4;
int PinoB= 2; //Não é PWM

void setup(){
  pinMode(PinoV,OUTPUT);
  pinMode(PinoH,OUTPUT);
  pinMode(PinoS,OUTPUT);
  pinMode(PinoC,OUTPUT);
  pinMode(PinoJ,OUTPUT);
  pinMode(PinoR,OUTPUT);
  pinMode(PinoQ,OUTPUT);
  pinMode(PinoB,OUTPUT);
  Serial.begin(19200);
}
void loop (){
  char pwm[4];
  unsigned char pwm_int = 0;
 
if (Serial.available() >= 4) {
//ler PWM
  for (int i = 0; i < 3; i++){
    pwm[i] = Serial.read();
}
  pwm[3] = '\0';
  pwm_int = atoi(pwm);
  switch(Serial.read()) {
    case 'V': {
          analogWrite(PinoV, pwm_int);
          Serial.println(pwm_int);
          break;}
    case 'H': {
          analogWrite(PinoH, pwm_int);
          Serial.println(pwm_int);
          break; }
    case 'S': {
          analogWrite(PinoS, pwm_int);
          Serial.println(pwm_int);
          break; }
    case 'C': {
          analogWrite(PinoC, pwm_int);
          Serial.println(pwm_int);
          break; }
    case 'J': {
          analogWrite(PinoJ, pwm_int);
          Serial.println(pwm_int);
          break; }
    case 'R': {
          analogWrite(PinoR, pwm_int);
          Serial.println(pwm_int);
          break; }
    case 'Q': {
          analogWrite(PinoQ, pwm_int);
          Serial.println(pwm_int);
          break; }
    case 'B': {
          analogWrite(PinoB, pwm_int);
          Serial.println(pwm_int);
          break; }
   
    }
}
}


O PinoR e o PinoB não vão ter dimmer, vai ser só ligar e desligar.
Se meter mais uma divisao assim a ligar e desligar só, já dá.
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3115
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

O analogWrite não faz nada em pinos digitais...

Code:
if(pwm_int == 0) {
    digitalWrite(pino, LOW);
} else {
    digitalWrite(pino, HIGH);
}
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

O analogWrite não faz nada em pinos digitais...

Code:
if(pwm_int == 0) {
    digitalWrite(pino, LOW);
} else {
    digitalWrite(pino, HIGH);
}

Tambem funcionava da outra maneira mas se assim está mais correto deixo da tua maneira smiley-wink
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

O analogWrite não faz nada em pinos digitais...

Como é que através do vb consigo saber o estado do LED? (Se está ligado, desligado ou a sua intensidade)
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3115
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Envias um "comando" para o Arduino a questionar o estado do LED que pretendes... e o Arduino responde.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Envias um "comando" para o Arduino a questionar o estado do LED que pretendes... e o Arduino responde.


Pois não sei é como
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3115
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
#define QUARTO_B 0
#define QUARTO_J 1
...

unsigned char analog_values[6]; //imaginemos 6 quartos.

switch(Serial.read()) {
    case 'V': {
          analogWrite(PinoV, pwm_int);
          Serial.println(pwm_int);
          break;}
    case 'H': {
          analogWrite(PinoH, pwm_int);
          Serial.println(pwm_int);
          break; }
    case 'S': {
          analogWrite(PinoS, pwm_int);
          Serial.println(pwm_int);
          break; }
    case 'C': {
          analogWrite(PinoC, pwm_int);
          Serial.println(pwm_int);
          break; }
    case 'J': {
          analogWrite(PinoJ, pwm_int);
          analog_values[QUARTO_J] = pwm_int;
          Serial.println(pwm_int);
          break; }
    case 'R': {
          analogWrite(PinoR, pwm_int);
          analog_values[QUARTO_R] = pwm_int;
          Serial.println(pwm_int);
          break; }
    case 'Q': {
          analogWrite(PinoQ, pwm_int);
          analog_values[QUARTO_Q] = pwm_int;
          Serial.println(pwm_int);
          break; }
    case 'B': {
          analogWrite(PinoB, pwm_int);
          analog_values[QUARTO_B] = pwm_int;
          Serial.println(pwm_int);
          break; }
 
//OLHA AQUI...
   case 'b': {
     Serial.println(analog_values[QUARTO_B]);
     break;
    }
 }

Se enviares 000b, recebes o PWM que tens no quarto B. Obviamente que isto não é ideal e é um sinal de quão imperfeito este protocolo é...
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

...
Se enviares 000b, recebes o PWM que tens no quarto B. Obviamente que isto não é ideal e é um sinal de quão imperfeito este protocolo é...

Depois no vb é so fazer o serial.read e fazer parsing da string recebida certo?
« Last Edit: April 03, 2013, 07:41:00 am by ruiacm10 » Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3115
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sim.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Pages: 1 [2]   Go Up
Jump to: