collapse

* Posts Recentes

Circuito Microfone que funcione por almamater
[Hoje às 17:14]


Emulador NES em ESP32 por dropes
[22 de Abril de 2024, 14:14]


Arame de Estendal por almamater
[18 de Abril de 2024, 16:16]


O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]

Autor Tópico: fazer uma plotter com uma hp  (Lida 47501 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline pmj_pedro

  • Mini Robot
  • *
  • Mensagens: 328
Re: fazer uma plotter com uma hp
« Responder #45 em: 23 de Junho de 2012, 23:00 »
Não estás a perceber.
Do encoder, metes por exemplo canal A no pino INT0, e o canal B metes num qualquer outro pino do micro, depois a interrupção fica algo assim:
Código: [Seleccione]
ISR(INT0_vect){

if((ENCBPIN & (1<<ENC1B)) == 0){
encoderA++;
}
else {
encoderA--;
}
}

tou a perceber, ai so estas a testar quando o canal A passa de 0 para 1, mas deu para perceber o que estavas a dizer
obd

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: fazer uma plotter com uma hp
« Responder #46 em: 23 de Junho de 2012, 23:01 »
Isso depende se queres ler os encoders em "modo" x1, x2 ou x4, para a utilização do meu caso o x1 chega.
Avr fanboy

Offline pmj_pedro

  • Mini Robot
  • *
  • Mensagens: 328
Re: fazer uma plotter com uma hp
« Responder #47 em: 23 de Junho de 2012, 23:15 »
Isso depende se queres ler os encoders em "modo" x1, x2 ou x4, para a utilização do meu caso o x1 chega.

Se gerar a interrupçao quando o canal A muda, entao devo ficar em 'modo' 2x
Para ficar em 4x tinha de ser os dois canais a gerar interrupçoes?

Offline pmj_pedro

  • Mini Robot
  • *
  • Mensagens: 328
Re: fazer uma plotter com uma hp
« Responder #48 em: 24 de Junho de 2012, 04:58 »
tou a tentar aprender a lidar com interrupçoes no arduino, mas nao estou a ter sucesso.

Código: [Seleccione]
#include <avr/interrupt.h>

int main(){
  pinMode(13,OUTPUT);
  digitalWrite(2,HIGH);
  cli();
  EICRA = (0<<ISC01) | (1<<ISC00);  // logical change
  EIMSK = (1<<INT0);                // external enable
  EIFR = (0<<INTF0);                // clean flag
  sei(); // Enable all interrupts

 while (1) {  }
}

ISR(PCINT0_vect){
  digitalWrite(13, !digitalRead(13));   // toggle LED pin
  EIFR = (0<<INTF0);
}

Nunca fiz isto em avr, so no pic32 e acho que era deste estilo

edit:
quero fazer isto sem usar as funçoes attachinterrupt ...

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: fazer uma plotter com uma hp
« Responder #49 em: 24 de Junho de 2012, 05:06 »
Não precisas de mexer em nenhuma flag, isso dá asneira, nos pics é que tens de andar a limpar flags á mão, nos avr's não.
Aconselho-te a leres a datasheet, está lá tudo explicadinho.
E que sinal estás a dar no pino INT0?
Se for um botão, que tem montes de bounce o led pode acabar por ficar no mesmo estado e não vês as várias vezes que ele faz o toogle por ser tão rápido, e o arduino aceita isso do main()?
Avr fanboy

Offline pmj_pedro

  • Mini Robot
  • *
  • Mensagens: 328
Re: fazer uma plotter com uma hp
« Responder #50 em: 24 de Junho de 2012, 15:44 »
sim posso escrever programar no ardunio IDE, como se fosse C, ele aceita o main em vez do setup e do loop

eu fiz esse bocado de codigo pelo datasheet, mas nao sei o que esta a falhar. Nao é um botao, é msm um um cabo que esta ligado ao pin2 e depois tanto ponho no gnd como tiro, acho que o pull up interno esta activo

o erro deve ser do vector, exprimentei por 0x002, INT0 ... e nd

edit:
   agr para testar pus um Serial.print e nao vejo nd na consola
« Última modificação: 24 de Junho de 2012, 15:48 por pmj_pedro »

Offline zedlav

  • Mini Robot
  • *
  • Mensagens: 78
Re: fazer uma plotter com uma hp
« Responder #51 em: 24 de Junho de 2012, 19:37 »
Boas.

Vais ter de trocar o nome do vector de PCINT0_vect para INT0_vect pois é este que estás a activar no teu código.
Para consulta: http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html

Offline pmj_pedro

  • Mini Robot
  • *
  • Mensagens: 328
Re: fazer uma plotter com uma hp
« Responder #52 em: 24 de Junho de 2012, 20:21 »
Boas.

Vais ter de trocar o nome do vector de PCINT0_vect para INT0_vect pois é este que estás a activar no teu código.
Para consulta: http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html

obrigado, ja esta a funcionar, so nao percebo é pk a interupçao so funciona das primeiras vezes.
Tou a usar um cabo ligado ao pin2, que tem uma resitencia pull-up de 10k, e vou ligando e desligando do gnd, da primeira vez que faço activa a interrupçao umas 4 vezes, e depois nao funciona mais

Código: [Seleccione]
#include <avr/interrupt.h>

int main(){
  Serial.begin(9600);
  pinMode(13,OUTPUT);
  pinMode(2,INPUT);
  digitalWrite(2,HIGH);
  cli();
  EICRA = (0<<ISC01) | (1<<ISC00);  // logical change
  EIMSK = (1<<INT0);                // external enable
  EIFR = (0<<INTF0);                // clean flag
  sei(); // Enable all interrupts

 while (1) {  }
}

ISR(INT0_vect){
  digitalWrite(13, !digitalRead(13));   // toggle LED pin
  Serial.print('+');
}

Offline zedlav

  • Mini Robot
  • *
  • Mensagens: 78
Re: fazer uma plotter com uma hp
« Responder #53 em: 24 de Junho de 2012, 22:02 »
O problema está na função Serial.print penso eu. Mas não sou a melhor pessoa para falar sobre a lib do arduino.
Mas seguindo isto parece ser esse o problema: http://code.google.com/p/arduino-pinchangeint/wiki/Usage#Serial.print%28%29_Inside_an_ISR

Offline pmj_pedro

  • Mini Robot
  • *
  • Mensagens: 328
Re: fazer uma plotter com uma hp
« Responder #54 em: 26 de Junho de 2012, 17:04 »
O problema está na função Serial.print penso eu. Mas não sou a melhor pessoa para falar sobre a lib do arduino.
Mas seguindo isto parece ser esse o problema: http://code.google.com/p/arduino-pinchangeint/wiki/Usage#Serial.print%28%29_Inside_an_ISR

era isso, resolveu o problema, obgd

Offline pmj_pedro

  • Mini Robot
  • *
  • Mensagens: 328
Re: fazer uma plotter com uma hp
« Responder #55 em: 15 de Julho de 2012, 01:58 »
ate hoje estive convencido que isto https://dl.dropbox.com/u/31280811/IMG_20120715_014042.jpg (09864+0029) era um optical enconder, mas nao encontro nunhuma informçao na net, nao sei qual das patas sao a alimentao e o canal, nem a que ddp alimentar

como posso descubrir?

edit:https://dl.dropbox.com/u/31280811/IMG_20120715_015443.jpg
« Última modificação: 15 de Julho de 2012, 02:07 por pmj_pedro »

Offline Hugu

  • Mini Robot
  • *
  • Mensagens: 5.602
  • Keyboard not found. Press any key to continue.
    • [url=www.g7electronica.net]G7 Electrónica.net[/url]
Re: fazer uma plotter com uma hp
« Responder #56 em: 15 de Julho de 2012, 02:14 »
isso parece mais uma ponte..  ??? (apenas uma opiniao, pk n faço ideia..pk nunca vi tal coisa!)

« Última modificação: 15 de Julho de 2012, 02:27 por Hugu »

Offline pmj_pedro

  • Mini Robot
  • *
  • Mensagens: 328
Re: fazer uma plotter com uma hp
« Responder #57 em: 15 de Julho de 2012, 02:30 »
isso parece mais uma ponte..  ??? (apenas uma opiniao, pk n faço ideia..pk nunca vi tal coisa!)

passa uma fita no meio, tenho quase a certeza que é uma optical enconder, mas nao sei como ligar e tenho medo de estraga-lo

acho que ja descubri, nao é igual mas deve de ter o msm pin-out : http://mckgyver.pbworks.com/f/Agilent_Optical_Encoders.pdf
« Última modificação: 15 de Julho de 2012, 02:47 por pmj_pedro »

Offline Hugu

  • Mini Robot
  • *
  • Mensagens: 5.602
  • Keyboard not found. Press any key to continue.
    • [url=www.g7electronica.net]G7 Electrónica.net[/url]
Re: fazer uma plotter com uma hp
« Responder #58 em: 15 de Julho de 2012, 02:58 »
isso parece mais uma ponte..  ??? (apenas uma opiniao, pk n faço ideia..pk nunca vi tal coisa!)

passa uma fita no meio, tenho quase a certeza que é uma optical enconder, mas nao sei como ligar e tenho medo de estraga-lo

acho que ja descubri, nao é igual mas deve de ter o msm pin-out : http://mckgyver.pbworks.com/f/Agilent_Optical_Encoders.pdf

ya! é isso tudo! ainda fui pesquisar ao site a Agilent mas n tive sorte.. :P

Offline pmj_pedro

  • Mini Robot
  • *
  • Mensagens: 328
Re: fazer uma plotter com uma hp
« Responder #59 em: 18 de Julho de 2012, 17:28 »
esta aqui a impressora que estou a modificar:


mas o motor to papel, nao faz a pcb mover uniformente, as vezes desliza mais para um lado outras, nao se move tanto para a frente

ja ando a procura de uma soluçao a uns dois dias, mas ainda nao consegui resolver, alguem tem uma sujestao?