Go Down

Topic: Problemas com Arduino+PHP (Read 4 times) previous topic - next topic

Wagner Sartori Junior


infelizmente do mesmo geito.   :smiley-roll:

Jeito é com JOTA. Fazendo TCC o mínimo é escrever corretamente :D

O autoreset é correto, quando você abre a porta seu arduino reseta.

Tenta isso:
1) Use o fopen com "w+" ao invés de apenas "w".
2) Coloque um sleep de uns 2 segundos(que deve dar o tempo do seu arduino fazer o "reset") depois dos "fopen" no PHP.

kabixi

É Wagner Sartori Junior, a correção ortográfica deu certo, XD XD XD, mas o código ficou do mesmo jeito. não desabilitei ainda o auto-reset, devido estou na duvida se utilizo o resistor 110ohms, ou mexer na trilha.

Wagner Sartori Junior

Eu não aconselho você a mexer no arudino(nem resistor nem cortar trilha). Toda vez que seu código abrir o serial com o arduino, ele será resetado. O sleep no PHP deveria resolver isto. Tente aumentar para 5 segundos.

Se não funcionar, precisa debugar, e aí fica mais complicado de explicar.

Comece vendo o CHR() no PHP que converte o ASCII code 1 para um caracter. Precisa ver a real necessidade disto. Tente tirar o CHR e ler do outro lado(no arduino) apenas o número 1(sem as aspas).

Outra coisa e colocar um LED e piscar ele em trechos do seu código para ver o que está acontecendo. Ou mesmo printar(Serial.println) coisas e ler o que está acontecendo. Tipo, imprima o caracter em HEXADECIMAL que vc está recebendo do PHP. Coloque depois do Serial.read um Serial.prinln(usbnumber, HEX).

kabixi

aumentei o sleep para 5 e ficou do mesmo jeito, mas e esse esquema de debugar, como posso entender melhor.

Wagner Sartori Junior

Debugar é você saber exatamente o que está acontecendo em algum ponto do seu programa(valor de variáveis, conteúdo de memória, etc...). No arduino(entenda microcontroladores AVR com função debug), como você não tem um programador especializado com funções de debug, você vai precisar cuspir as saídas do que você quer para algum lugar. Pode ser um LED que pisca uma vez quando chega em um ponto do seu programa, duas vezes quando chega em outro e assim por diante.

Como ele está ligado via porta serial na sua máquina, recomendo fazer as saídas na porta serial. Leia mais sobre os métodos print() e println() do Serial:
http://arduino.cc/en/Serial/Print
http://arduino.cc/en/Serial/Println

Abrindo o "Serial Monitor" no IDE do Arduino, você consegue ver as saídas da porta serial, entretanto, o PHP vai "deixar" de funcionar porque você só pode abrir a porta serial em um software de cada vez.

Se você está tendo dificuldades, experimente os exemplos de serial que vem com o IDE do Arduino. O que você está tentando fazer não é coisa de "iniciante" é mais para médio/avançado, então recomendo ler mais e entender exatamente o que faz cada coisa que você está fazendo no seu programa.

Go Up