Conheça o mundo fantástico do Arduino
Por Jorge Alcino para o Pplware
Nesta publicação vamos começar a falar sobre Arduino. Aqui no PPLWARE já falámos de um outro microprocessador, o Rapspberry PI. Vamos começar primeiro por saber o que é o Arduino.
O Arduino é uma plataforma de hardware livre, projectado com um microcontrolador Atmel AVR. É uma placa de código aberto baseado em num circuito de entradas/saídas simples, micro controlada e desenvolvida sobre uma biblioteca que simplifica a escrita da programação em C/C++.
O Arduino pode ser programado com a linguagem de programação Arduino, que é baseada na linguagem Wiring e seu ambiente de desenvolvimento é baseado no Processing. Mais a frente iremos abordar a programação deste.
Os primeiros passos
Há vários modelos do Arduino. Aqui iremos falar sobre as especificações do Arduino UNO e do Arduino MEGA. Numa próxima publicação iremos falar sobre os primeiros passos na programação deste microprocessador.
Arduino UNO
O Arduino UNO é o equipamento ideal para iniciantes. Com esta placa já é possível efectuar vários projectos.
Características técnicas
- Micro controlador: ATmega328
- Tensão de operação: 5V
- Tensão de entrada (recomendada): 7-12V
- Tensão de entrada (limite): 6-20V
- Entradas/Saídas: 14 (6 pins PWM)
- Pins Analógicos (Entrada): 6
- Memória Flash: 32 KB (ATmega328), 0.5kb usado pelo bootloader
- SRAM: 2 KB (ATmega328)
- EEPROM: 1 KB (ATmega328)
- Velocidade do Clock: 16 MHz
Arduino MEGA
O Arduino MEGA é aconselhável para projectos em que necessitam mais memória e um número maior de portas, tanto analógicas como digitais.
Características técnicas
- Micro controlador: ATmega2560
- Tensão de operação: 5V
- Tensão de entrada (recomendada): 7-12V
- Tensão de entrada (limite): 6-20V
- Entradas/Saídas: 54 (15 pins PWM)
- Pins Analógicos (Entrada): 16
- Memória Flash: 256 KB, 8k usado pelo bootloader
- SRAM: 8 KB
- EEPROM: 4 KB
- Velocidade do Clock: 16 MHz
O Arduino está organizado com entradas/saídas digitais e analogias.
Mas afinal o que são estas entradas/saídas e quais são as diferenças ?
As entradas analógicas permitem distinguir qual a tensão que está na porta, ou seja, permite “dividir” este valor (0V-5V) em 1024 níveis (1024 bits), sendo que o valor máximo é 1023 (4.955V) e o valor mínimo é 0 (0V).
As entradas digitais não permitem ver a tensão que está na porta tão detalhadamente, visto o valor desta só poder ser 1 (5V) ou 0 (0V).
Passemos agora ás saídas:
Nas saídas digitais podemos variar a tensão entre 0 e 1 (sendo que 1=5V e 0=0V). As saídas digitais têm também um tipo de saída específico. Uma saída digital PWM. A sigla PWM provém do inglês “Pulse-Width Modulation”, que em português significa “Modulação por largura de pulso”. Neste tipo de saída podemos controlar a tensão que sai das portas, ou seja, podemos controlar um motor, ou um LED através da corrente DC. Se verificarmos com um “Analisador de frequências”. Neste tipo de portas iremos obter um gráfico com ondas quadradas.
Numa breve conclusão, pode-se dizer que para iniciar neste mundo do Arduino, um Arduino UNO é o suficiente, visto os projectos iniciais não precisarem de grande processamento nem de grande numero de portas. Para projectos mais avançados será necessário o MEGA, visto ser necessário mais velocidade de processamento e mais portas, tanto digitais como analógicas. A compra destes equipamentos pode ser realizada online, na loja INMOTION.
Este artigo tem mais de um ano
Aquilo dos 6-20v é verdade? Onde é que tem essa tensão de saída?
O artigo diz que se trata de uma tensão de entrada. Apesar da tensão de operação do micro ser de 5V, a placa possui um regulador de tensão na entrada para assegurar os 5V de forma independente da tensão de entrada.
Os valores 6-20V não são tensões de saída, mas sim, são os valores limite de tensão que os Arduinos (pelo menos os referidos no artigo), podem ter na sua entrada de alimentação.
Os 6V são o limite mínimo com que o Arduino pode funcionar de uma forma estável, ou seja, manter os 5V que é sua a tensão de operação e os 20V são o limite máximo a que o Arduino pode ser alimentado. Valores acima dos 20V, podem causar danos no regulador de tensão e na própria placa Os valores 6-20V não são tensões de saída, mas sim, são os valores limite de tensão que os Arduinos (pelo menos os referidos no artigo), podem ter na sua entrada de alimentação.
Os 6V são o limite mínimo com que o Arduino pode funcionar de uma forma estável, ou seja, manter os 5V que é sua a tensão de operação e os 20V são o limite máximo a que o Arduino pde ser alimentado. Valores acima dos 20V, podem causar danos no regulador de tensão e na própria placa Arduino. Embora, no site do Arduino, eles recomendam não ultrapassar os 12V, devido a isto poder causar sobreaquecimento no regulador de tensão e poder provocar danos na placa Arduino.
Bem, não sei o que se passou, mas a primeira resposta não saiu bem. O texto correcto, é o seguinte:
Os valores 6-20V não são tensões de saída, mas sim, são os valores limite de tensão que os Arduinos (pelo menos os referidos no artigo), podem ter na sua entrada de alimentação.
Os 6V são o limite mínimo com que o Arduino pode funcionar de uma forma estável, ou seja, manter os 5V que é sua a tensão de operação e os 20V são o limite máximo a que o Arduino pode ser alimentado. Valores acima dos 20V, podem causar danos no regulador de tensão do Arduino e na própria placa Arduino. Embora, no site do Arduino, eles recomendam não ultrapassar os 12V, devido a isto poder causar sobreaquecimento no regulador de tensão e poder provocar danos na placa Arduino.
É tensão de entrada, porém é recomendável entre 7 e 12 volt e, já agora, acima de 250mA (máx), de preferencia 1000mA se quiseres usar um grande número de portas i/o
Parabens por este post de iniciação 🙂 sera bom para quem quer começar a escolher um arduino 🙂
Muito Bom artigo.
O arduino é fantástico deixo aqui o meu Projecto que realizei no Verão com arduino:
https://www.youtube.com/watch?v=4DKELi7CIV0
Boas…
Esta muito bom mesmo 😉
Parabéns
cmps
Obrigado 🙂
Muito bom projecto! Isto e’ ideal para ser usar em renderfarms, onde nao se tem nenhum monitor ligado, e precisa de se monitorizar alguns factos, como temperatura, velocidade, etc. Muito bom mesmo.
Tenho alguns projectos realizados com o arduino que podem ser vistos no meu blog: http://carlosch5908.wordpress.com/
Parabéns, Projectos bastante bons
Tenho alguns projectos realizados com o arduino que podem ser vistos no meu blog: http://carlosch5908.wordpress.com/
Muito bom…
Do que eu me lembro da faculdade, o 1024 níveis de quanitificação não se fazem com 1024 bits… 😛
” “dividir” este valor (0V-5V) em 1024 níveis (1024 bits) ”
O arduino neste caso é um ADC/DAC de 10 bits, o que faz com que 2^10 = 1024 níveis 😉
hummm
penso que ele não possui DAC…são muito caros os DAC’s, embora possa ser feito com pwm…mas a resolução será um bocado baixo de ter um DAC dedicado…
tenho pena que o harduino não se baseie naquele que para mim e para muitos é o melhor MCU 8 bits…stm8(europeu…mas não é por isso que é eleito o melhor ;))
cmps
O chip que da vida ao Arduino foi desenhado na Noruega… o Arduino foi criado em Italia… mais europeu que isto nao ha. 😛
E compilador para o stm8? E a borla?
O chip foi desenhado na Europa….mas a empresa é Americana :S
Ou seja o producto é Americano…
Poderia ter surgido alguma Parceria entre a STmicroelectronics e a equipa do harduino..
Não existe ainda um compilador opensource…nunca houve vontade em cria-lo…e isso é triste…
Existe apenas um assemblador free, e apenas para o windows…outro problema, pois não é open…
O sdcc esta a criar um porte a um ritmo muito baixo, uma pena, que a comunidade na Europa, não se tenha empenhado naquilo que é nosso..
Mas ele aparecerá, devido á plataforma ser um espectaculo(um MCU com core risc e instruções cisc), com a mesma performance que o avr(em muitos casos bem superior) e com muito melhor perifericos…
Quanto ao harduino ser europeu, isso é bom haver este tipo de projectos na Europa, mas era idela ter nele um MCU Europeu, que ainda por cima é um MCU barato(consideravelmente mais barato que o avr) e muitissimo bom…
cmps
Hmmm,
E dar o salto para 32 bits??
Os STM32 sao bons… muito bons… e existem compiladores de borla.
Da uma olhada no projecto Maple em leaflabs.com.
sim é verdade…os stm32 são muito bons…
E o compromisso entre performance/liberdade no uso de ferramentas/consumo energético é o melhor do mercado…
O ideal era ter harduino 8 bits com stm8 e 32 bits com stm32…assim sim 😉
Talvez no futuro…se pense mais no que é nosso…
eu da minha parte ando a tentar criar um programa para flashar os stm8 em linux, baseando-me precisamente num porte que foi feito do stm32…mas que está um caos, e tem falta de funcionalidades…
Mas ainda só tem suporte via uart(não sei se vou implementar spi,ha ganhos poucos acentuados a nivel de performance na gravação…)…mas não é facil, porque a STM dividiu mal o tipo de dispositivos para este MCU(stm8), e é um caos conseguir abranger um grande numero de MCU’s quando o bootloader do teu MCU não contém informação do modelo :S
Mas vai devagar 😉
cmps
É isso mesmo, o ADC do Arduino é de 10 bits o que pode ser pouco nalguns projetos.
Assim como o PWM é de 8 bits (2^8=256 niveis -> 0 a 255)
Outra vantagem do UNO é a possibilidade de substituir o integrado facilmente caso se queime.
“É isso mesmo, o ADC do Arduino é de 10 bits o que pode ser pouco nalguns projetos.”
pois…um pouco por isso…o stm8l é um espanto…menor consumo energético que os avr, a mesma performance, e até mais em muitos casos e…pasmen-se
adc 12bits
dac 12 bits(sim um dac 12 bits)
😉
cmps
Meus amigos tudo bem que é natal mas falar de PWM e não referir se quer a frequência. Começa a parecer me que estamos a entrar no domínio da magia.
Mas vá lá que se usarmos um “Analisador de frequências” podemos obter um boneco engraçado onde falta unidades, como seria o resultado com uma fritadeira?
Boa tarde,
Primeiro de tudo, á que referir que a frequência das PWM do arduino pode ser alterada manualmente. (sendo que as default são de 1KHz nos pins 5 e 6 e de 500 Hz nos pins 3,9,10,11).
Que eu saiba o “boneco engraçado onde falta unidades” acho que toda a gente entende que é tensão de saída em função do tempo.
Antes de mais obrigado pelo comentário critico, pois são necessários…
Atenciosamente
Jorge Alcino
Votos de um bom Natal.
Outro site para fans de robótica: ptrobotics.com
Assim já está correcto
“este valor (0V-5V) em 1024 níveis (2^10 bits)”
obrigado pelo artigo, gostava que continuassem a publicar artigos deste género…
tenho uma questão para os mais entendidos… aqueles starter kits que vemos no eBay feitos por outras empresas, têm a mesma qualidade/compatibilidade que o Arduino original?
Boas tarde 😀
Depende do fornecedor… Mas por norma são compatíveis…
Se eu puder ajudar, envie-me um email (jalcinomatias@gmail.com) que irei tentar ajudar no que for preciso,
Atenciosamente
Votos de um Bom Natal,
Jorge Alcino
Boas
Antes de mais bom natal.
Podem aceder a um projeto criado pela diffmob que cria uma ligação entre Android e o arduino. Vejam: https://play.google.com/store/apps/details?id=appinventor.ai_gg_diffmob.DiffVoice
Geral@diffmob.com
Só vejo interesse no Arduino quem só pretenda programar. Mas na minha opinião acaba por ter maior interesse fazer também a montagem do hardware. Já utilizei várias placas de desenvolvimento, algumas bem mais interessantes e simples para quem se quer iniciar na programação de microcontroladores, mas a verdade é que passado pouco tempo chateiam-me pois condicionam as funções das portas. Ou seja, este tipo de placas limitam as potencialidades dos microcontroladores.
Para finalizar assumo a minha preferência pelos microcontroladores da Microchip pois para alem de ser a empresa lider permitem adquirir samples gratuitamente. Para alem dos micros possuem reguladores de tensão etc… Outras empresas interessantes que enviam gratuitamente samples de sensores, condicionamentos de sinal, reguladores, etc é a maxim-ic e a analogia devices. Fica a dica para quem como eu não gosta apenas de programar mas também de montar:) Aproveito para vos deixar um link com um pequeno projeto natalício feito em cima do joelho que permite acender remotamente as luzes da árvore de natal feita em garrafas de água 🙂 Bom Natal a todos.
Ups o link é axis211a.fe.up.pt
boas será que podem dar-me uma ajuda?!
tenho em maos um projecto que visa controlar um quadcopter a partir de um microcontrolador a escolha como o arduino, raspberry pi…. só que não sei muito bem a diferença entre eles e qual se adaptará melhor à aplicação, tenho algumas bases de C, C++ e assembly so que é muito superficial (estou no ultimo ano de Eng. electrotecnica e a programação não é tao fundamental como outras materias).
bom natal a todos!
como sabes o raspberry pi…tem um SO completo por baixo a correr…a latência é grande no que toca a dados em tempo real, além de que uart-spi, etc não tem implementação em hardware, ou seja é feito via bit banging(com recurso a timers) o que torna a coisa um pouco ainda mais lenta…
Mas dependendo do que queres o raspberry pi pode servir muito bem 😉 mas não vai ser a mesma coisa…
Não ha muito por onde fugir :S
Facilidade de implementação…raspberry pi
performance…uma aplicação dedicadda
Depende do tempo que tens , das pesssoas que vão trabalhar no projecto, etc
o assembler que tens pode ditar a arch a escolher…pois ele so corre numa arch(aquela para o qual o asm foi criado).
o Arduino pode também ser adiquirido em Lisboa na LEDs&Chips – Creative Electronics. http://ledsandchips.com
Boa noite, estou a iniciar um projecto, que requer um componente que faça ligação entre telemóvel e automóvel, será o Arduino o mais indicado.
Desde já obrigado.