LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: dio123 em 31 de Março de 2009, 12:27

Título: iniciado em robot
Enviado por: dio123 em 31 de Março de 2009, 12:27
Estou no curso de informática e entrei num clube de robotica.  No clube temos estes robots https://robosavvy.com/site/index.php?option=com_content&task=view&id=136&Itemid=40 (https://robosavvy.com/site/index.php?option=com_content&task=view&id=136&Itemid=40) e gostava de fazer o meu proprio robot.
Tenho um carro  telecomandado e dois chips iguais a estes (https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.kanda.com%2Fimagethumbs%2F05-11-2008-1258dip40.jpg&hash=2e3eaf29e30578cfbfd03c600893f5729e8b3a39)
tem esta referencia

at90s8515
0143

Queria umas dicas como construir o meu robot, e poder programa-lo atraves dos chips,  mas  nao posso gastar muito dinheiro.


agradecia
Título: Re:iniciado em robot
Enviado por: TigPT em 31 de Março de 2009, 14:22
Olá, e bem-vindo.

Visto que já tens algum conhecimento, sabes que precisas de um microcontrolador e de um programador. Isso é realmente um ponto essencial que se deve de ponderar bem a escolha.

Existem diversas opções, e pelo que vejo já tens um AVR, contudo não tens programado. Ou optas por comprar um programador para esse IC, ou por procurar outro controlador que te seja mais interessante em termos de funções e custo.

Já foste ver de programador para esse AVR?

Já viste outros micros como Arduino, BasicStamp, Picaxe, etc para ver os preços e as funções?!
Título: Re:iniciado em robot
Enviado por: dio123 em 31 de Março de 2009, 15:23
eu tenho o aparelho para programar o avr que é apollo 12c ap igual a da foto
 perciso de um microcontrolador para poder mais tarde ligar  os motores e sensores  e por o avr.
Para o avr e perciso alem das funçoes do robot e perciso programar mais alguma coisa?


 (https://lusorobotica.com/proxy.php?request=http%3A%2F%2Faycu12.webshots.com%2Fimage%2F38371%2F2003216571401645928_rs.jpg&hash=6bbaa4f6d2788615ef30b7f873f730ba48e7465c)

Título: Re:iniciado em robot
Enviado por: TigPT em 31 de Março de 2009, 15:30
Precisas de meter um bootloader se quiseres poder depois programa-lo sem recorrer ao programador (simples serial TX/RX), caso possas programar sempre pelo programador, apenas precisas do código para o robot em si, que pode ser escrito em baixo nível, ou C caso tenhas algum compilador para esse programador.

Métodos de inicialização para meter no inicio e isso, depende de micro para micro e de compilador para compilador, mas talvez o Njay te possa ajudar mais, visto que ele já tem mais experiência com AVR.
Título: Re:iniciado em robot
Enviado por: dio123 em 31 de Março de 2009, 19:42
desde já agradeço  a ajuda

Nao tenho ideia como vou "fazer" construir  a placa principal do robot  que deve ser mais ou menos uma coisa deste genero
http://www.2mhi.com/icar/arduino/BallDuino/ballduino7.jpg (http://www.2mhi.com/icar/arduino/BallDuino/ballduino7.jpg)

tive  a ver uns tutoriais mas nao ficei com ideia do que utilizar de condesendores, resistencias etc..
Título: Re:iniciado em robot
Enviado por: TigPT em 31 de Março de 2009, 20:06
desde já agradeço  a ajuda

Nao tenho ideia como vou "fazer" construir  a placa principal do robot  que deve ser mais ou menos uma coisa deste genero
http://www.2mhi.com/icar/arduino/BallDuino/ballduino7.jpg (http://www.2mhi.com/icar/arduino/BallDuino/ballduino7.jpg)

tive  a ver uns tutoriais mas nao ficei com ideia do que utilizar de condesendores, resistencias etc..
Se quiseres começar com Arduino (Atmega128/328 da AVR), eu diria que é a melhor opção de baixo custo, grande expansibilidade e facilidade de construção, podes inspirar-te neste post:
http://lusorobotica.com/index.php/topic,522.0.html (http://lusorobotica.com/index.php/topic,522.0.html)
Ou comprar um Arduino já montado em www.arduino.cc (http://www.arduino.cc) ou qualquer loja da especialidade, podes encontrar algumas aqui:
http://lusorobotica.com/index.php/board,16.0.html (http://lusorobotica.com/index.php/board,16.0.html)
Título: Re:iniciado em robot
Enviado por: Njay em 31 de Março de 2009, 20:13
O AVR é um microcontrolador. Um microcontrolador é como um computador mas muito muito piriri comparado com aquele que usas para aceder à net. Mas ele também tem um CPU, um "disco" que guarda o programa e outro para guardar dados, e RAM, embora todos muito pequenos.

Como ainda estás muito verde nisto, o meu conselho é que comeces com uma matriz de contactos, aquelas placas brancas cheias de furos que não é preciso soldar. Isto vai dar-te muita flexibilidade para experimentar, podes tirar e meter componentes, e até re-fazer o circuito todo em meia hora. Se fores para um PCB de furos, assim que um componente está soldado já não há volta, e vais precisar de fazer muitas experiências. Além disso, eu por exemplo não gosto nada desses PCBs furados, e só os uso para circuitos mesmo muito simples e pequenos (tipo 2 ou 3 cm quadrados); elas parecem fáceis de usar mas não são, pois é preciso muita perícia na soldadura e dá uma trabalheira desgraçada soldar as ligações todas. Depois de as usar uma vez desisti, e passei a usar ou matriz de contactos ou a fazer logo um PCB para o circuito.
Se for preciso também podes usar a matriz de contactos no teu próprio robot, existem modelos que são pequenos.

Tenho um tutorial para arrancar a programar um AVR. É para um modelo diferente do teu, mas a parte de software é similar, podes usá-lo para ver como fazer um programa exemplo e compilar. Depois terás que usar o teu programador para gravar o programa no teu AVR. O tutorial é este:

http://www.electronicapt.com/forum/avr-micro-tutorial-t1561.0.html (http://www.electronicapt.com/forum/avr-micro-tutorial-t1561.0.html)

Depois podes ir colocando umas dúvidas.

Bem vindo e boa sorte :)!
Título: Re:iniciado em robot
Enviado por: dio123 em 04 de Abril de 2009, 17:53
ola a todos

O meu avr é diferente do seu avr do tutorial, o avrdude tem de ser a informação do meu avr ou do aparelho que uso para programar?
Título: Re:iniciado em robot
Enviado por: Njay em 04 de Abril de 2009, 18:35
Não faz mal serem diferentes modelos de AVR, porque ambos se programam usando a mesma interface fisica. Se abrires a datasheet do teu AVR (http://www.atmel.com/dyn/resources/prod_documents/doc0841.pdf), vais lá encontrar logo na 2ª página os pinos com os nomes SCK, MISO, MOSI, /RESET (= /RES), que o ATtiny26 também tem e são esses os que se usam para gravar o programa no chip (programar). Por exemplo, o pino /RESET no ATtiny26 é o 10, o mesmo pino no teu 8515 é o 9. Portanto, podes montar tudo numa matriz de contactos como fiz no meu ligando-o à porta paralela através do mesmo cabo (é o programador) que lá indico, que é fácil de fazer. Para esse AVR tens é que usar 5V para a alimentação. Para programar usas os mesmos comandos que dei ao AVR-DUDE mas indicas que estás a usar o AT90S8515 em vez do tiny26 (em vez de avrdude -c avrpt -p t26 -i 50 usas avrdude -c avrpt -p 8515 -i 50).

Na compilação do programa também tens que indicar que estás a usar um 8515 e não um tiny26, pelo que em vez de
avr-gcc -mmcu=attiny26 -DF_CPU=1000000UL -g -O1 -o pisca_led.elf pisca_led.c
usarias
avr-gcc -mmcu=at90s8515 -DF_CPU=1000000UL -g -O1 -o pisca_led.elf pisca_led.c

O programa para piscar o LED fica igual, simplesmente tens que ligar o LED no pino 39 pois esse é o pino A0 no 8515.

Quanto aos fusíveis (fuses), no 8515 não tens que fazer nada, pois esse chip é antigo e quase não os tem. Precisas é de colocar um cristal de quartzo com 2 condensadores para a massa, pois esse AVR também não tem clock interno, só funciona a cristal ou ressonador. O cristal ligas aos pinos XTAL1 e XTAL2, e depois um condensador de mais ou menos 22pF entre cada pino XTAL e a massa (o GND, ou negativo, é o mesmo). Podes ver esse esquema de ligação na página 6 da datasheet.

É possível usar o programador que já tens com o AVR-DUDE, mas tinhas que adicionar ao ficheiro avrdude.conf uma descrição do teu programador, à semelhança do que fiz para o "meu" programador avrpt no tutorial. Esta descrição basicamente diz ao AVR-DUDE que pinos da LPT são o SCK, o MOSI, etc. Mas para isso precisas de ter o esquema desse APOLLO...

Ainda pode haver mais umas coisas a ajustar, mas para já acho que tens o suficiente para avançar. Usa a datasheet, lê-a, pesquisa-a, está lá tudo o que precisas de saber sobre esse chip. Se tiveres dúvidas coloca-as aqui.
Título: Re:iniciado em robot
Enviado por: dio123 em 08 de Abril de 2009, 09:10
Queria saber se é possivel construir o sensor de aproximidade  igual ao que esta neste topico aqui http://lusorobotica.com/index.php/topic,527.0.html (http://lusorobotica.com/index.php/topic,527.0.html) sem ter de utilizar o arduino?
Posso por a funcionar numa placa de testes(beardboard)?

se conseguir fazer o sistema de acender e apagar o led com esta neste topico http://www.electronicapt.com/forum/avr-micro-tutorial-t1561.0.html (http://www.electronicapt.com/forum/avr-micro-tutorial-t1561.0.html) depois para utilizar o sensor e muito dificil?



desde ja agradeço
Título: Re:iniciado em robot
Enviado por: tr3s em 11 de Abril de 2009, 17:00
Citar
Queria saber se é possivel construir o sensor de aproximidade  igual ao que esta neste topico aqui http://lusorobotica.com/index.php/topic,527.0.html (http://lusorobotica.com/index.php/topic,527.0.html) sem ter de utilizar o arduino?
Posso por a funcionar numa placa de testes(beardboard)?

Com um 555 e mais uns componentes... sim é bem capaz de se conseguir fazer qualquer coisinha gira!
Título: Re:iniciado em robot
Enviado por: dio123 em 19 de Abril de 2009, 10:25
estou a tentar  fazer o que esta Njay fez neste tutorial http://www.electronicapt.com/forum/avr-micro-tutorial-t1561.0.html, (http://www.electronicapt.com/forum/avr-micro-tutorial-t1561.0.html,) mas tenho um problema de nao encontrar informações sobre o meu programador Apollo 12c AP.

Como faço para configurar o avrdude se nao encontro um esquema dele na  net



desde já agradeço
Título: Re:iniciado em robot
Enviado por: Njay em 19 de Abril de 2009, 11:16
Se não encontrares o esquema, faz o seguinte:

1) Vê na datasheet do AVR quais são os pinos SCK, MOSI, MISO e /RESET.
2) Com o multímetro na posição de teste de continuidade, descobre a que pinos da ficha LPT os 4 pinos acima estão ligados (as fichas da LPT costumam ter lá escrito o nº do pino, no plástico).
3) Na foto eu vejo 3 resistências iguais todas alinhadinhas e ligadas entre si do lado direito, parece-me que esse programador é alimentado da porta LPT, certo (ou seja, não o ligas a pilhas ou fonte externa)? Neste caso, se realmente ele é allimentado pela porta LPT, então tens também que descobrir que pinos da LPT vão ligar a cada uma dessas resistências, usando o teste de continuidade.

Se obtiveres a informação acima, então depois volta cá para escolhermos (ou fazermos) uma configuração para o avr-dude.
Título: Re:iniciado em robot
Enviado por: dio123 em 19 de Abril de 2009, 11:48
fiz o teste e obtive isto
contei da direita para a esquerda
  reset  8
  sck     6
  mosi   7
  miso   4


Título: Re:iniciado em robot
Enviado por: Njay em 19 de Abril de 2009, 12:06
Preciso de saber o pino exacto da LPT, isso costuma estar escrito na ficha, na zona de plástico.
E os 3 pinos da LPT que ligam às 3 resistências alinhadinhas?
Título: Re:iniciado em robot
Enviado por: dio123 em 19 de Abril de 2009, 12:18
pelo os numero do plastico o reset fica no 6
o sck fica no 8
o mosi no7
e o miso no 4
Título: Re:iniciado em robot
Enviado por: Njay em 19 de Abril de 2009, 12:52
Então segue os passos no meu tutorial para adicionares a seguinte configuração ao avrdude.conf:

# Apollo
programmer
  id    = "apollo";
  desc  = "apollo programmer";
  type  = par;
  reset = 6;
  sck   = 8;
  mosi  = 7;
  miso  = 4;
;

Depois usas "apollo" como nome do programador nos comandos (em vez de "avrpt" como uso no artigo).

Mas se o teu programador não tiver alimentação externa (como me parece que não tem, mas tu ainda não me disseste), não vai funcionar de certeza.
Título: Re:iniciado em robot
Enviado por: dio123 em 19 de Abril de 2009, 13:49
o aparelho antigamente funcionava desta maneira.
ligo o cabo de porta paralela, acende a luz verde insiro o avr, passava  o eeprom e tava a funcionar.
nO teu  tutorial percisas  de ter as pilhas ligadas a beardboard para gravar no teu avr. No meu caso penso que nao seja perciso.
Título: Re:iniciado em robot
Enviado por: Njay em 19 de Abril de 2009, 14:01
Então nesse caso tens que ver qual os nºs dos 3 pinos que estão ligados às resistências, e depois adicionar mais este parametro (a seguir a "type = ..."):

  vcc   = a, b, c;

Em que "a", "b" e "c" são os nºs dos pinos da LPT ligados às resistências.

Depois se estiver tudo a funcionar, ainda podes tentar descobrir a que pino da LPT está ligado o LED e adicionar a seguinte linha ao avrdude.conf, se for um LED que pisca quando está a programar:

pgmled = <pino>;
Título: Re:iniciado em robot
Enviado por: dio123 em 19 de Abril de 2009, 14:50
eu nao sei de electronica mas pelo o que consegui saber foi o seguinte.

Na imagem do meu programador que esta no inico do topico junto a coisa redonda, penso que sao 3 resistencias juntas
pela a imagem a 1º resistencia apita no 2pino , 2ºresistencia apita no 3 pino e a 3º resistencia apita no 4 pino.
Depois a resistenciaque esta mais proxima de onde liga o cabo a resistencia apita no 11 pino e a outra que esta em cima do led nao apita.

entao o vcc   = 2, 3, 4;

certo
Título: Re:iniciado em robot
Enviado por: Njay em 19 de Abril de 2009, 14:56
Certíssimo, vcc = 2,3,4;
Título: Re:iniciado em robot
Enviado por: dio123 em 19 de Abril de 2009, 15:13
a instalação de install_giveio.bat deu no passo a seguir avrdude -c avrpt -p 8515 -i 50 dá erro


avrdude esta assim

...


# Parallel port programmers.

# Apollo
programmer
  id    = "apollo";
  desc  = "apollo programmer";
  type  = par;
  vcc   = 2,3,4;
  reset = 6;
  sck   = 8;
  mosi  = 7;
  miso  = 4;
;

programmer
  id    = "stk200";
  desc  = "STK200";
Título: Re:iniciado em robot
Enviado por: Njay em 19 de Abril de 2009, 15:32
Só tens 1 porta paralela no PC?

Reparei agora num erro:

  vcc   = 2,3,4;
  reset = 6;
  sck   = 8;
  mosi  = 7;
  miso  = 4;

miso e vcc não podem partilhar o pino 4, têm que ser diferentes (todos diferentes). Verifica novamente todas as ligações.
Título: Re:iniciado em robot
Enviado por: dio123 em 19 de Abril de 2009, 16:06
estive a verificar todas as ligaçoes ficando assim:
  vcc   = 2,3,4;
  reset = 6;
  sck   = 8;
  mosi  = 7;
  miso  = 10;

mesmo assim continua a dar o mesmo erro, já estiver a mudar no avrdude e por os dados acima e mesmo assim nao dá
Título: Re:iniciado em robot
Enviado por: Njay em 19 de Abril de 2009, 16:33
Verificar se só tens 1 porta paralela e/ou estás a ligar o apollo na LPT1.
Verificar as ligações mais uma vez, incluindo se estás a ver os pinos certos no AVR (sabes qual é o pino 1 do suporte do AVR?).
Se estás a usar um cabo entre o PC e o apollo, experimenta sem o cabo (se der para ligar o apollo directamente ao PC).
Também podes tentar aumentar o -i 50 para -i 100, se bem que não deve fazer diferença.

Mais do que isto, assim remotamente, não sei.
Título: Re:iniciado em robot
Enviado por: dio123 em 19 de Abril de 2009, 17:45
bem va virificei todas as ligações e nao obtive resultados.
Mudei i50 para 100 mas tambem nao dá
liguei diretamente o apollo a porta cor de rosa_(LPT1)  do pc e nao deu.
Título: Re:iniciado em robot
Enviado por: dio123 em 28 de Abril de 2009, 18:09
aqui esta a foto do apollo por baixo

http://img156.imageshack.us/my.php?image=semttulofuv.jpg (http://img156.imageshack.us/my.php?image=semttulofuv.jpg)

a final a quele programada nao dá para o meu avr.


perciso de um programa para fazer a contagem para a porta b at90s8515 para depois ir para microcontrolador 4511 e depois aparece a contagem do display 7 segmentos fiz o seguinte mas nao resultou.

#include <stdio.h>

main()
{
   int i = 0;

   while(1)
   {
      PORTB = i;
      i++;
      if (i == 9) i = 0;
   }
}

mudado o link
Título: Re:iniciado em robot
Enviado por: Njay em 29 de Abril de 2009, 00:43
A foto não aparece.

O 4511 não é um microcontrolador, é um "conversor BCD para display de 7 segmentos". O teu problema é que não estás a enviar BCD (vês os números mas aparecem numa ordem esquisita, é isso?) mas sim binário. BCD é um formato em que divides o byte ao meio, ficando com 2 nibbles (cada "nibble" tem 4 bits), e depois colocas em cada nibble o digito decimal. Por exemplo, 23 em BCD é 35; em decimal parece que não faz sentido, mas quando passamos 35 para binário e o partimos em nibbles já se percebe:

7 6 5 4  3 2 1 0 <- nº do bit
0 0 1 0  0 0 1 1 <- 35 em binário
-------  -------
   2        3

2d = 0010b (2 decimal = 0010 binário)
3d = 0011b


Portanto, antes de enviar o número para o porto B tens que o converter para BCD.


p.s. Tens aí umas frases um bocado "retorcidas", ajuda imenso se escreveres bom Português! Também deves incluir código dentro das tags "code" para ficar bem formatado.
Título: Re:iniciado em robot
Enviado por: dio123 em 03 de Maio de 2009, 00:31
desde ja agradeço a ajuda.

Estou  com o problema de nao saber c, logo torna-se complicado de criar o meu proprio programa.

Converter para bcd nao tem haver com a tabela de Carnaught e tabela da verdade?
se for esse o caso já aprendi a fazer isso, e até tenho uma tabela no exel com tudo do 7 segment organizado.

O que tenho actualmente e microcontrolador at90s8515 onde nas portas primeiras 4 portas, pa, estão ligadas os 4 fios do display 7 segmentos.

no PB0 esta ligado 1 led onde pisca
Título: Re:iniciado em robot
Enviado por: dio123 em 04 de Maio de 2009, 18:45
testei no proteus o seginte:
 ligei display 7 segmentos aos 1ºs 7 pinos do avr e consegui fazer a contagem.
Agora tentei fazer o mesmo, mas na beardboard mas nao funciona, e estou a usar resistencias 330ohms em cada segmento. Porque?



desde ja agradeço.

Título: Re:iniciado em robot
Enviado por: dio123 em 08 de Maio de 2009, 21:13
se alguem poder ajudar no seguinte agradecia imenso.

Não sei o que aconteceu desde dos ultimos testes com o avr na beardboard que, quando foi fazer a programação novamente do programa do led a piscar nao funcionou voltei a programar e nada.
Já apagei o avr com funmagic e programei tudo direitinho e nao dá e antes funcionava perfeitamente
alguem me ajude



desde já
Título: Re:iniciado em robot
Enviado por: Fifas em 09 de Maio de 2009, 00:56
poderá ter perdido o bootloader....experimenta meter-lhe o bootloader e testa de novo ;)
Título: Re:iniciado em robot
Enviado por: dio123 em 09 de Maio de 2009, 11:16
bootloader para at90s8515 é muito dificil de encontrar ou então estou a procurar mal, porque estou a 3 horas a procura na google e ainda nao encontrei nada
Título: Re:iniciado em robot
Enviado por: Njay em 10 de Maio de 2009, 02:57
testei no proteus o seginte:
 ligei display 7 segmentos aos 1ºs 7 pinos do avr e consegui fazer a contagem.
Agora tentei fazer o mesmo, mas na beardboard mas nao funciona, e estou a usar resistencias 330ohms em cada segmento. Porque?

Talvez porque ligaste mal o display, ou porque simulaste um de cátodo comum e usaste um de ánodo comum.

Não sei o que aconteceu desde dos ultimos testes com o avr na beardboard que, quando foi fazer a programação novamente do programa do led a piscar nao funcionou voltei a programar e nada.
Já apagei o avr com funmagic e programei tudo direitinho e nao dá e antes funcionava perfeitamente

Se o software do programador não dá erro nenhum e diz que gravou o programa no AVR, então é porque tens algum erro na montagem do circuito ou porque não estás a gravar o programa que pensas que estás a gravar (recompila/re-assembla e certifica-te de que estás a gravar o ficheiro certo).

p.s. Este AVR não usa bootloader.
Título: Re:iniciado em robot
Enviado por: Fifas em 10 de Maio de 2009, 03:21
p.s. Este AVR não usa bootloader.


pois é....é o que faz ler a pressa :P
Título: Re:iniciado em robot
Enviado por: dio123 em 10 de Maio de 2009, 15:11
Bem desde já agradeço pela ajuda

Foi o que pensei, que o display tive-se mal ligado.
Mas depois, tirei tudo da board liguei o led com a resistencia ao pino 1do avr pus com hex do led, e quando liguei nao piscava o led.
 Achei estranho, e com calma programei mais 2 vezes, mas o led acende, mas nao pisca.
Ainda exprimentei ligar o led a outros pinos, quando chego a conclusão que o led acende nos pinos todos.

 
 Tenho o simulador proteus isis 7, testei o hex e lá funciona, e na realidade tambem já funcionou, agora nao dá, nao sei porque.

Quanto ao bootloader, depois tanta procura foi o que pensei, que nao tive-se, porque nao tinha encontrado nada sobre bootloader


 
Título: Re:iniciado em robot
Enviado por: Njay em 14 de Maio de 2009, 01:27
Se tens o circuito numa matriz de contactos verifica os encaixes ou troca os componentes de sitio, às vezes as matrizes velhas começam a fazer mau contacto em alguns pontos e os blocos cristal/condensadores são sub-circuitos bastante sensíveis.
Título: Re:iniciado em robot
Enviado por: dio123 em 15 de Maio de 2009, 08:54
Chegei a conclusão que o problema é do avr, pois testei o outro avr igual e já funcionou.
Agora com tudo a funcionar quero ver se consigo  criar um codigo em c do led a piscar, porque neste momento só,tenho um ficheiro hex do led a piscar.

Tendo uns programas em c prontos, a funcionar, quero ver se faço  uns tutorials,com fotos, e posto no forum
Título: Re:iniciado em robot
Enviado por: dio123 em 25 de Maio de 2009, 22:56
bem era para postar mais cedo mas nao houve tempo.

tenho este video que se ve mal, mas penso que dá para perceber o objectivo.

avr at90s8515 (http://www.youtube.com/watch?v=cqcTNlZWMzo#lq-lq2-hq-vhq)

o esquema onde está ligado 74hct390n e ao 4511 com o display 7 segmentpo. Penso que está a funcionar porque se ligar o pino 16  do  74hct390n do a um dos pinos da  porta C, que piscam, ele fica a contar.

O  avr at90s8515  que está programado para que as primeiros pinos da  porta C piscem, e que a porta A onde fica ligado o display 7 segmentos, conte de 1 até 9,  mas  nao conta nao sei porque. Porr isso queria saber se alguem tem alguma ideia do que se pode estar a passar?

No display 7 segmentos ligei as resistencias a cada segmento.

desde ja agradeço

programa do avr:


Citar
#include <avr/io.h>
#include <util/delay.h>

const char segmentos[10] =
{
   0b00111111,
   0b00000110,
   0b01011011,
            0b01001111,
   0b01100110,
   0b01101101,
   0b01111101,
   0b00000111,
   0b01111111,
   0b01100111 
};


int main (void)
{
    DDRA = 0xFF;    // Configurar pino PA0 como output
   DDRC = 0xFF;
   PORTA = 0;
   PORTC = segmentos[0];
   _delay_ms(300);

    while(1)
   {  // inicio de ciclo
        PORTA++;      // Acender o LED
      PORTC = segmentos[PORTA];
        _delay_ms(300);     // Esperar 250ms...
      if (PORTA == 9)
      {
         PORTA = 0;
         PORTC = segmentos[PORTA];
         _delay_ms(300);
      }
    }
}
Título: Re:iniciado em robot
Enviado por: Njay em 25 de Maio de 2009, 23:32
Precisamos de um esquema... o esquema é a forma de mostrar e partilhar um circuito com alguém. Até pode ser desenhado à mão, não tem qualquer importância que o seja.

Sem o esquema, no código só posso comentar que existe uma limitação nos _delay_ms(). Esta função só consegue fazer delays de tempos até 262.14 ms / F_CPU (F_CPU = frequência do AVR em MHz). Logo, um _delay_ms(300) nunca vai dar o tempo certo. Podes usar a função DelayMs() abaixo em vez da _delay_ms(), e assim podes ir até vários segundos:

Código: [Seleccione]
void DelayMs (uint16_t ms)
{
    while (ms--) _delay_ms(1);
}
Título: Re:iniciado em robot
Enviado por: dio123 em 26 de Maio de 2009, 19:21
bem fiz o esquema do circuito há mao, espero que seja esclarecedor.
no esquema falta 1 coisa que me esqueci de por:
As resistencias em cada linha que liga aos displaym 7 segmentos.
datasheet:
http://www.datasheetcatalog.org/datasheets/400/85150_DS.pdf (http://www.datasheetcatalog.org/datasheets/400/85150_DS.pdf)
http://www.datasheetcatalog.org/datasheet2/3/07g3pa3sttru45a6a4wpcajhau7y.pdf (http://www.datasheetcatalog.org/datasheet2/3/07g3pa3sttru45a6a4wpcajhau7y.pdf)
http://www.datasheetcatalog.org/datasheets2/27/2789408_1.pdf (http://www.datasheetcatalog.org/datasheets2/27/2789408_1.pdf)

imagem:

http://img15.imageshack.us/img15/6467/imagem003lkq.jpg
 (http://img15.imageshack.us/img15/6467/imagem003lkq.jpg)
Título: Re:iniciado em robot
Enviado por: dio123 em 30 de Maio de 2009, 16:35
bem acho que este avr tambem  já se foi.
Então ne que hoje de manha, ao ligar o avr, para testar um novo programa, que é, acender e apagar os 2 leds da porta b nao funciona.
Fui ver ao simulador confirmar a porta do led, e programei novamente o avr e nao é que ele voltou a fazer o mesmo que o outro avr.
Acende o led em todas as portas mas nunca se apagam.

Queria perguntar se alguem se sabem  uma forma de saber se o avr esta queimado?


agradecia imenso.