Elektor_342_2013

80
A Melhor Revista de Electrónica Prática do Mundo CAN Testador Testa, Repara, Analisa, Simula e Explora a Tua Rede Rolante www.elektor-magazine.pt Novembro 2013 magazine Medidor LCR de 500 ppm l Registador de temperatura multicanal Termómetro USB l Selector de entrada estéreo bidireccional l Iluminação LED para modelos Normas de programação l Curso PCB Prototyper  Espectrómetro de frequência áudio de Freystedt (1935) Forze VI: um carro de corrida movido a hidrogénio DesignSpark Dicas e Truques

Transcript of Elektor_342_2013

Page 1: Elektor_342_2013

A Melhor Revista de Electrónica Prática do Mundo

CANTestador

Testa, Repara, Analisa, Simula e Explora a Tua Rede Rolante

www.elektor-magazine.pt

Novembro 2013

magazine

Medidor LCR de 500 ppm l Registador de temperatura multicanal Termómetro USB l Selector de entrada estéreo bidireccional l Iluminação LED para modelos Normas de programação l Curso PCB Prototyper

  Espectrómetro de frequência áudio de Freystedt (1935) Forze VI: um carro de corrida movido a hidrogénio DesignSpark Dicas e Truques

Page 2: Elektor_342_2013
Page 3: Elektor_342_2013

www.elektor-magazine.pt | Novembro 2013 | 3

Edição 342, Novembro 2013Depósito Legal: nº 7313/84ISSN 0870-1407R.C. Social nº 110 523www.elektor.com.ptwww.elektor-magazine.com/pt

Editor: Elektor International Media bvHolandaSede: Elektor International Media b.v.P.O. Box 11 NL-6114-ZG SusterenThe Netherlands.Telefone: +31 46 4389444Fax: +31 46 4370161www.elektor.com | www.elektor.org

A Elektor publica-se 10 vezes ao ano com edição dupla em Janeiro/Fevereiro e Julho/Agosto.

Assinaturas:Internet: www.elektor.com.pt Ir à secção Assine Já!Email: [email protected]

Contacto geral da Elektor Portugal:[email protected]

Publicidade:Elektor International MediaEmail: [email protected]ão Martins: [email protected]

Direitos de autorOs circuitos descritos nesta revista são exclusivamente para utilização pessoal. Os direitos de autor de todos os gráficos, fotografias, desenhos de circuitos impressos, circuitos integra-dos programados, discos, CD-ROM, software e os textos dos artigos publicados nos nossos livros e revistas (que não sejam propriedade de terceiros) estão registados pela Elektor Interna-tional Media bv e não podem ser reproduzidos ou difundidos de nenhuma forma nem por nenhum meio, incluindo fotocópias, digitalizações ou registos de imagem, parcial ou totalmente, sem a prévia autorização escrita do Editor. Também será pre-ciso dispor da referida autorização escrita antes de armazenar qualquer parte desta publicação em sistemas de armazena-mento de qualquer natureza. Os circuitos, dispositivos, com-ponentes, etc., descritos nesta revista podem estar protegidos por patentes. O Editor não aceita responsabilidade alguma pela ausência de identificação da(s) referida(s) patente(s) ou pro-tecções intelectuais de outro tipo. A apresentação de desenhos ou artigos implica que o Editor está autorizado a modificar os textos e desenhos para apresentação na revista, assim como a utilizar esses conteúdos noutras publicações e actividades da Elektor International Media. O Editor não garante a devolução de qualquer material que lhe seja enviado.

RessalvaOs preços e descrições dos produtos relacionados com a publi-cação estão sujeitos a modificações. Excluem-se erros e omis-sões. As opiniões expressas nos diferentes artigos, assim como o conteúdo dos mesmos, são responsabilidade exclusiva dos seus autores e não reflectem necessariamente as opiniões do Editor. O conteúdo e mensagens publicitárias são da responsa-bilidade exclusiva dos respectivos anunciantes.Os preços e descrições dos elementos relacionados com a publicação estão sujeitos a alteração sem prévio aviso. Estão excluídos erros ou omissões.

© Elektor International Media b.v. 2013

A revista Elektor é publicada originalmente também na Holanda, Alemanha, França, Inglaterra, Estados Unidos,

Espanha e Brasil nos respectivos idiomas.

A Equipa ElektorDirecção Editorial: João Martins ([email protected])Editor Portugal/Espanha: Eduardo Corral ([email protected])Responsável Técnico da Edição Portuguesa: Carlos ReisRedacção Internacional: Harry Baggen, Thijs Beckers, Jan Buiting, Wisse

Hettinga, Denis Meyer, Jens Nickel, Clemens ValensEquipa de desenho: Thijs Beckers, Ton Giesberts, Luc Lemmens,

Raymond Vermeulen, Jan VisserDesign gráfico e DTP: Giel Dols, Mart SchroijenDirector online: Daniëlle MertensDirector de marca: Wisse HettingaDirector general: Don Akkermans

EditorialAfinal o Grafeno é um perigo para a Saúde Pública?Em qualquer publicação relacionada com ciência, tecnologia e nomeadamente elec-trónica, podemos encontrar regularmente notícias sobre as inúmeras aplicações experimentais de Grafeno “descobertas” todos os dias.Não é para menos. O grafeno é um dos materiais em que a humanidade actualmente deposita maiores esperanças porque tem praticamente todas as propriedades que são necessárias para substituir muitos materiais raros na terra e mudar a forma como os componentes e circuitos electrónicos são construídos, ao mesmo tempo que promete levar a evolução da computação para um patamar inteiramente novo.O grafeno tem estado assim no foco de atenção da comunidade científica, sobretudo desde que o trabalho de Andre Geim e Konstantin Novoselov, na Universidade de Manchester, mereceu o Prémio Nobel da Física em 2010.Mas da mesma forma que se promovem as fantásticas propriedades do grafeno, tal como as suas qualidades como supercondutor – 200 vezes mais rápido do que o silí-cio, mesmo à temperatura ambiente – e na transmissão de calor que tornam o gra-feno uma das melhores opções em dissipadores, surgem de imediato os detractores a afirmar que tudo não passa de folclore. E não admira, quando vemos o grafeno a ser associado sucessivamente a notícias de aplicações em painéis solares, semicon-dutores, ecrãs transparentes, sensores e até para dessalinização da água... Parece bom demais para ser verdade.Além disso, falta ainda reduzir os custos da sua produção. No entanto, o grafeno será sempre mais barato do que outros materiais condutores como o cobre e a prata, para além de poder ser sintetizado a partir de carbono, gerando uma multi-plicidade de diferentes materiais aos quais vemos aplicar a designação de grafeno para simplificar.O maior potencial de aplicação na indústria electrónica? Circuitos flexíveis e impres-são de circuitos, abrindo caminho a todo o tipo de aplicações de integração de elec-trónica em roupa e em materiais maleáveis, ecrãs flexíveis, etc.Na verdade, o grafeno tornou-se quase um símbolo da enorme evolução da ciência e de como a tecnologia está a evoluir de forma exponencial, o que assusta muita gente e já há mesmo quem o declare como “um risco para a saúde pública”.Recentemente surgiram notícias a afirmar que, “do ponto de vista de toxicologia, existe o risco de inalação com consequências devastadoras para células vivas”. Isto, claro, se um ser humano for exposto a grafeno em pó, onde fragmentos de apenas 10 microns conseguem penetrar facilmente na pele...O mesmo se pode dizer de muitos outros materiais perigosos que hoje em dia trans-portamos connosco diariamente, sendo natural que a sua aplicação tenha que ser condicionada a encapsulamentos e todo o tipo de precauções, tal como fazemos nas baterias de iões de lítio, por exemplo.As novas fronteiras implicam sempre enormes desafios mas não será o grafeno mais um símbolo das nossas próprias esperanças e receios sobre o futuro?

João Martins,Director Editorial para Países de Língua Portuguesa e Espanhola

•Comunidade

Page 4: Elektor_342_2013

mag

azin

e

4 | Novembro 2013 | www.elektor-magazine.pt

Novembro 2013•Índice No. 342

Comunidade 10 Universo Elektor

• Deixe o seu cérebro pensar • Só sorrisos • Ponto de Lançamento

da “Internet das Coisas” • Isso soa bem!

Projecto 12 Testador CAN 20 Actualização importante para

o Medidor LCR de 500 ppm

Tech The Future 64 Forze VI: um carro de corrida

movido a hidrógeneo

Magazine 66 Retrónica: Espectrómetro

de frequência de áudio de Freystedt

Curso 72 Curso Arduíno (6)

30 Registador de temperatura multicanal

36 Termómetro USB

46 Selector de entrada estéreo bidireccional

50 Iluminação LED para modelos

DesignSpark 42 DesignSpark Dicas e Truques,

Dia 5: gerar ficheiros para fabricar placas de circuito impresso

Labs 53 Normas de programação 58 .Labs Dicas e Truques 62 Curso PCB Prototyper

Page 5: Elektor_342_2013

United KingdomWisse Hettinga+31 46 [email protected]

USAHugo Van haecke+1 [email protected]

GermanyFerdinand te Walvaart+49 241 88 [email protected]

FranceDenis Meyer+31 46 [email protected]

NetherlandsHarry Baggen+31 46 [email protected]

SpainEduardo Corral+34 91 101 93 [email protected]

ItalyMaurizio del Corso+39 [email protected]

SwedenWisse Hettinga+31 46 [email protected]

BrazilJoão Martins+31 46 [email protected]

PortugalJoão Martins+31 46 [email protected]

IndiaSunil D. Malekar+91 [email protected]

RussiaNataliya Melnikova+7 (965) 395 33 [email protected]

TurkeyZeynep Köksal+90 532 277 48 [email protected]

South AfricaJohan Dijk+31 6 1589 [email protected]

ChinaCees Baay+86 21 6445 [email protected]

As Nossas Redes

Conectamos-te com

www.elektor-magazine.pt | Novembro 2013 | 5

Page 6: Elektor_342_2013

• Indústria

6 | Novembro 2013 | www.elektor-magazine.pt

Circuitos Impressos

Maker Faire Rome 2013Arduino com Intel, Texas e excitantes novos produtos e colaborações

Foram uma série de interessantes iniciati-vas e anúncios espectaculares que marcaram o evento Maker Faire Rome na capital italiana entre os dias 3 a 6 de Outubro 2013, reunindo centenas de entusiastas, profissionais da indús-tria e milhares de visitantes de toda a Europa.A Arduino escolheu precisamente esta ocasião para anunciar ao mundo a sua nova estraté-gia e as suas muitas inovações: novos produ-tos, novas colaborações e muitas novas fun-cionalidades. A Arduino irá continuar a inves-tir num modelo consistente de programação para múltiplas plataformas, tornando a partir de agora mais fácil lidar com a evolução e a complexidade de cada projecto.Neste evento a Arduino anunciou também a expansão dos seus populares pacotes Starter Kits agora em italiano, contendo um guia para projectos criativos com a plataforma e todos os componentes electrónicos mais comuns. A Arduino confirma que está a trabalhar na produção de Kits em Português do Brasil, Coreano, Japonês, Chinês e outras línguas.

Arduino Intel GalileoUm dos principais anúncios diz respeito ao lançamento da nova placa Arduino Intel Gali-leo, uma colaboração com a Intel Corporation assinalada neste evento e que será apenas o primeiro produto de uma nova família de pla-cas certificadas pela Arduino ...com base numa arquitectura Intel. Segundo a Arduino explica, uma nova plataforma que será fácil de usar por parte de principiantes assim como por parte de qualquer pessoa que queira criar projectos mais sofisticados, em alternativa às platafor-mas baseadas em processadores ARM ou Atmel.A Galileo usa um processador SoC Intel Quark

X1000 a 400MHz com um conjunto de instru-ções baseadas em Pentium mas sendo com-patível com o ambiente de desenvolvimento de software Arduino IDE a correr em Macs, Windows ou Linux.A placa em si tem duas filas de encaixes para shields Arduino (3,3 ou 5 V), conectores para portas USB (host e cliente), ligação Ethernet 100Mbps, RS-232 e um slot mini-PCI Express, mais GPIOs através de um interface I2C.Para armazenamento, a placa conta com 8MB de Flash para o código bootloader e sketches Arduino mais um slot Micro SD para até 32GB de armazenamento extra, tendo 512KB SRAM embebida e 256MB de DRAM.Durante a conferência denominada “How to reMake the World”, o novo CEO da Intel Corpo-ration, Brian Krzanich, anunciou um donativo de 50.000 placas Intel Galileo a 1000 univer-sidades em todo o mundo, numa acção que decorrerá nos próximos 18 meses.Comercialmente a Intel Galileo fica disponível no dia 29 de Novembro de 2013.

Arduino TREA placa Arduino TRE que conta com o proces-sador Sitara AM335x da Texas Instruments foi outro dos importantes anúncios deste evento.Trata-se de mais uma colaboração da Arduino, desta feita com a Texas Instruments (TI), o resultado pode ser comprovado na nova Arduino TRE que é também a primeira placa Arduino fabricada nos Estados Unidos.Graças ao processador Sitara a 1GHz, os utiliza-dores de Arduino passam a ter um desempenho 100 vezes superior com a placa TRE em com-paração à Arduino Leonardo ou Uno. Este nível de desempenho abre as portas para aplicações mais avançadas em Linux, tendo a plataforma a capacidade de correr aplicações desktop de alto desempenho, algoritmos de processamento intensivo e comunicações a alta velocidade.Além disso, a placa Arduino TRE é como se fos-sem duas Arduinos numa só, com o processa-dor Sitara a encarregar-se de todos os pro-cessos Linux Arduino mais o ambiente Arduino AVR, mantendo ao mesmo tempo a simplici-dade da experiência de software da plataforma. A integração de AVR Arduino permite que a Arduino TRE possa usar todo o ecossistema de shields existente, permitindo usar a Arduino TRE para expandir projectos existentes e apos-tar em aplicações de maior desempenho, tal como é necessário, por exemplo, para controlar impressoras 3D, soluções de automação e con-trolo de iluminação ou sistemas de telemetria que recebem dados a partir de sensores sem fio, assim como para todo o tipo de aplicações que exigem controlo hospedeiro mais opera-ções em tempo real.

O evento Maker Faire Rome 2013 decorreu entre os dias 3 a 6 de Outubro e foi um enorme sucesso, com mais de 30.000 visitantes a encher o Palazzo di Congressi e centenas de criadores e novas empresas a mostrar o entusiasmo do comunidade open hardware e open software

A Intel decidiu neste evento adoptar a plataforma Arduino e lançou a nova plataforma Galileo com um processador Intel Quark X1000 a 400MHz compatível com software Arduino IDE e Arduino shields desenhados para a Uno R3

Page 7: Elektor_342_2013

notícias

Renesas Electronics reforça a sua oferta de controladores USB 3.0A empresa de semicondutores Rene-sas Electronics anunciou a disponi-bilidade de novos chips controlado-res concentradores Universal Serial Bus 3.0 (USB 3.0) com duas portas, aumentando a flexibilidade de imple-mentação de ligações com este inter-face em dispositivos digitais, desde PCs e tablets até televisores digitais e outros periféricos compatíveis.Acrescentar um novo controlador hub de duas portas à oferta já disponível da Renesas – a primeira marca a ofe-recer um controlador de quatro por-tas certificado USB 3.0 no mercado – vem ampliar as opções para pro-jectos com expansão em USB 3.0 em todo o tipo de dispositivos, incluindo bases docáveis para smartphones e tablets, monitores e todo o tipo de expansores que se ligam a compu-tadores de mesa ou portáteis. Esta versão de duas portas (uPD720211) suporta projectos electrónicos mais compactos, com menos espaço em placa e com restrições maiores a nível de custo, ao mesmo tempo que vem expandir as opções de conectivi-dade de interface USB 3.0 para ir ao encontro de um número crescente de equipamentos e periféricos já exis-tentes no mercado e que já todos contam com ligações USB 3.0.O novo chip controlador concentrador de duas portas da Renesas utiliza um encapsulamento QFN sendo assim o mais compacto chip do género em

USB 3.0 existente na indústria e inte-gra já um regulador de tensão redu-tor equivalente aos dos existentes em componentes de periféricos exigidos para carga rápida de tablets, smart- phones, etc. Este sistema oferece também o mais baixo consumo no seu género, com aproximadamente 5 milliwatts (mW) em modo de baixo consumo e aproximada 350 mW em funcionamento em modo USB 3.0.A Renesas confirma que existe uma forte procura no mercado por solu-ções USB 3.0 – que permite obter até 5 gigabits por segundo em modo SuperSpeed – para lidar com gran-des ficheiros de vídeo e gravação em sistemas de armazenamento de alta capacidade. Os primeiros chipsets com funcionalidades USB 3.0 ficaram recentemente disponíveis no mer-cado, acelerando a adopção de USB 3.0 em dispositivos como tablets e equipamentos de electrónica de con-sumo, para além dos computadores onde fizeram a sua estreia.www.renesas.com

Circuitos Impressos

A Arduino Tre da Texas Instruments é uma placa com uma área central de uma Arduino Uno, com um processador Atmel ATmega32u4 a 16 MHz, que aceita shields Arduino e uma placa wireless Digi XBee. No resto da placa temos o processador ARM Cortex-A8 TI Sitara AM335x a 1GHz, capaz de correr uma versão Linux completa, complementado por dois microcontroladores 32-bit programáveis em tempo real a 200 MHz

Além disso, a Arduino TRE é parcialmente o resultado de uma colaboração entre a Arduino e a fundação Beagle- Board.org. Estes pioneiros do “open hardware” partilham a paixão de expandir ambientes de desenvolvimento open source, tornando a tecnologia acessível a artistas e entusias-tas. A Arduino TRE capitaliza assim nas experiências tanto da Arduino como da BeagleBoard.org, combinando os benefícios destas plataformas e das respectivas comunidades.“Ao escolher o processador Sitara AM335x da TI para poten-ciar a Arduino TRE, estamos a permitir que os nossos clientes possam tirar partido das capacidades de um processador expo-nencialmente mais rápido a correr um sistema operativo Linux completo”, afirma Massimo Banzi, co-fundador da Arduino. “Os nossos clientes agora dispõem de um portfólio de soluções diver-sificado que vai desde uma solução Uno baseada em microcon-trolador até a um computador Linux completo como é a TRE”.A placa Arduino TRE vai ficar disponível na Primavera de 2014.www.arduino.cc | www.makerfairerome.eu

Page 8: Elektor_342_2013

• Indústria

8 | Novembro 2013 | www.elektor-magazine.pt

Solução chipKIT Pi, desenhada para Raspberry Pi, torna-se também na primeira plataforma compatível Arduino da MicrochipA solução originalmente promovida pela Micro-chip e element14 integra um microcontrola-dor PIC32 a 32-bit num encapsulamento SPDIP com reduzido número de pinos, ideal para pro-totipagem. Tirando partido do nível de desem-penho da geração mais recente PIC32, com ele-vadas capacidades de memória e periféricos integrados, esta placa permite implementar facilmente soluções que integram ecrãs tác-teis, processamento de áudio e capacidades de controlo avançadas. A placa chipKIT Pi é supor-tada pela solução de desenvolvimento chipKIT Multi-Platform IDE (MPIDE) que pode correr directamente na Raspberry Pi.Esta mesma solução, desenhada exclusiva-mente para Raspberry Pi permite criar uma ponte com ecossistemas Arduino, uma vez que o ambiente de desenvolvimento MPIDE é open source e compatível com a linguagem de programação e ferramentas de desenvolvi-mento para Arduino. A solução com base no MCU 32-bit PIC32 da Microchip permite assim criar, compilar e programar aplicações Arduino baseadas em sketchs chipKIT directamente no sistema operativo Raspberry Pi.A ideia surgiu por parte de uma equipa de engenheiros da Microchip e da Farnell / ele-ment14, como uma forma de explorar as capa-cidades industriais existentes da Farnell, nome-adamente da sua subsidiária Embest, para

criar ferramentas de desenvolvimento exclusi-vas que permitissem aos utilizadores da Rasp-berry Pi trabalhar em sistemas embebidos com vastas possibilidades de aplicação.A ideia inicial do produto consistia simples-mente em ligar uma Raspberry Pi através de um cabo a uma placa existente da Microchip e desenvolver algum código que permitisse con-trolar a placa. No entanto, a equipa da Micro-chip quis ir ainda mais longe e começaram a trabalhar no conceito daquilo que viria a ser a solução chipKIT Pi.Os criadores do ambiente de desenvolvimento MPIDE (o equivalente chipKIT ao Arduino IDE) e a equipa da Microchip começaram a ana-lisar formas de correr o MPIDE directamente no ambiente da Raspberry Pi, o que permitiria expandir enormemente a base de aplicações possíveis.Essencialmente, a equipa implementou modi-ficações que permitem que o MPIDE corra em

Raspberry Pi, permitindo importar, escrever e descarregar sketches Arduino através da porta USB da Raspberry Pi para as placas compatí-veis chipKIT. O mais interessante é que esses sketches – que são programas que permitem às placas Arduino / chipKIT desempenhar determinadas tarefas, podem ser assim escri-tos por qualquer pessoa, abrindo um universo acessível a toda uma comunidade alargada de entusiastas.Como o processador da Raspberry Pi é um chip de 3,3V, os seus pinos de entradas e saídas digi-tais e comunicações (I2C, UART, SPI) requerem 3,3V, fazendo com que as placas Arduino, basea- das em microcontroladores 8-bit de 5V, preci-sem de componentes adicionais para converter as tensões. Já a placa chipKIT Pi pode ligar-se directamente à expansão de E/S da Raspberry Pi sem componentes adicionais, reduzindo cus-tos e complexidades das aplicações.A plataforma de desenvolvimento chipKIT cons-titui assim uma solução de hardware e sof-tware open-source ideal para pessoas com pouca experiência terem um contacto com controladores embebidos e explorarem esse mundo específico de aplicações, expandindo o suporte a mais plataformas e colocando ao dis-por toda uma série de bibliotecas de elevado desempenho.www.element14.com

Novo kit de desenvolvimento Linux WiFi da SilexComo são cada vez mais os projectos de siste-mas embebidos que usam WiFi, a Silex Tech-nology decidiu lançar um novo SDK (kit de desenvolvimento de software) para acelerar a integração de WiFi em sistemas baseados em Linux.A base do novo kit de desenvolvimento Silex SX-580-2700DM-SDK é o módulo COM (com-puter-on-module) SX-580 WiFi da marca. Mede apenas 30 x 55mm e integra um chip Atheros 6003 da Qualcomm com comunica-ção dual-band 802.11a/b/g/n, juntamente com um processador SoC Freescale i.MX28 a correr uma stack de rede TCP/IP optimizada para Linux. A Silex desenhou este módulo SX-580 COM para aplicações especializadas tal como dispositivos médicos, equipamentos de medida ou impressoras em rede.

O kit inclui igualmente uma placa base de desenvolvimento que garante conectividade Ethernet, três portas série, USB, alimentação e terminais de acesso a interfaces SPI, I2C e GPIO. Além disso, inclui também uma antena WiFi e vem com documen-tação completa relativa a hardware e software, incluindo exemplos de programas em Linux.Os protocolos de segurança do Linux SDK para este módulo SX-580 incluem suporte WPA, WPA2, WPA2-PSK, WPA, WPA-PSK e autenti-cação WEP+802.1x com os mais comuns pro-tocolos EAP. O SDK inclui igualmente capa-cidades série e Ethernet-para-WiFi, incluindo pontes que permitem que um dispositivo conectado em Ethernet possa comunicar sem fios, sem exigir modificações ao software

existente. As portas série do módulo supor-tam velocidades até 3Mbps.Tal como a Silex Technology explica, este con-junto SX-580-2700DM-SDK responde igual-mente a todo o tipo de aplicações customiza-das com dispositivos embebidos, respondendo à procura crescente no mercado.www.silexeurope.com

Page 9: Elektor_342_2013

notícias

A fábrica Sony UK TEC, situada em Pencoed, no Sul de Gales, foi o parceiro eleito pela element14 para trazer a produção da popular plataforma Raspberry Pi para o Reino Unido

1 milhão de placas Raspberry Pi produzidas no Reino Unido em parceria com a SonyA parceria da element14 com entidades como a Sony UK Technology Centre permitiu dar resposta ao fenómeno de popularidade da Raspberry Pi, ao mesmo tempo que foi possí-vel expandir o ecossistema desta plataforma com acessórios exclusivos como a EnOcean Pi, XBMC kit, PiFace e Gertboard, assim como os produtos Foundation, tal como a Raspberry Pi Camera.Isso mesmo foi recentemente assinalado por Jonathan Hardie (Global Head of Manufactu-ring, element14), Steve Dalton OBE (direc-tor geral do Sony UK Technology Centre) e Anthony Morton (Global Asset Manager - Ras-pberry Pi, element14), para simbolicamente celebrar a produção de 1 milhão de unidades Raspberry Pi produzidas no Reino Unido.A decisão estratégica de trazer de volta a produção da plataforma Raspberry Pi para o Reino Unido, só se tornou possível graças à parceria estabelecida com a fábrica Sony UK TEC, um dos gigantes da electrónica que

trouxe também o benefício de tornar o cen-tro de produção mais próximo da sede da Farnell element14, reduzindo tempo e custos de transporte e incentivando a indústria na região. A fábrica Sony UK Technology Centre é uma divisão da Sony Europe Limited que é um dos principais centros da marca na Europa e onde estão igualmente presentes cerca de 28 empresas start-up relacionadas, benefi-ciando de capacidades de produção com cer-tificação ISO 9001 (qualidade) e ISO 14001 (ambiental).Segundo Steve Dalton, director da Sony UK Technology Centre, “a Raspberry Pi é um exemplo fantástico de uma inovação produ-zida no Reino Unido, demonstrando as nos-sas capacidades de engenharia. Desde o dia em que o produto foi lançado que sabíamos que a Raspberry Pi seria um sucesso e qui-semos fazer parte dele. Ficámos surpreendi-dos mas também encantados pela procura contínua registada pela Pi em todo o mundo,

assim como pela facto de tudo indicar que esta não irá diminuir tão cedo. Em menos de um ano, criámos um milhão de unidades na nossa fábrica em Pencoed, o que resultou na criação de 40 postos de trabalho em Gales. É um feito digno de ser celebrado”.www.sonypencoed.co.ukwww.element14.com/community/raspberrypi_projects

Page 10: Elektor_342_2013

•Comunidade

10 | Novembro 2013 | www.elektor-magazine.pt

Compilado por Wisse Hettinga

Universo Elektor

Deixe o seu cérebro pensar… e guarde todo o trabalho para o software. Aqui no MOSI (Museu de Ciência e Indústria) em Manchester, Reino Unido, 20 projectistas de várias empresas concorrem para levar o DesigSpark Mechanics ao limite. O desafio é desenvolver algo inovador em 48 horas e imprimi--lo em 3D! Não é uma tarefa fácil para pessoas que normalmente têm mais do que fazer para além de salvar o mundo, mas as ideias que sur-gem são interessantes. Actualmente, é justo dizer que as actividades da equipa Elektor destinadas a salvar o mundo estão limitadas a evitar que algumas infelizes plantas sequem no escritório – já é um começo.

Só sorrisosAs pessoas que vê sorrir perten-cem à equipa de projecto do Flow-code. Todos têm razões para estar felizes: concluíram a versão 6 do Flowcode, um novo e excitante produto. Onde outros programas lhe permitem ver um LED a piscar ou um nível de sinal, o Flow-code 6 permite-lhe programar e simular todo um universo 3D completo. Os projectos típicos de CAD 3D podem ser importados e reavivados. Por exemplo, pode simular e testar o projecto para a impressora 3D antes de iniciar a produção. Desta forma esta nova versão do Flowcode preenche a lacuna entre a programação da electrónica e a simulação de comportamentos reais.A equipa está sedeada em Halifax, Reino Unido, e tenho a certeza que podemos esperar desta mais aplicações e desenvolvimentos num futuro próximo.O Flowcode está disponível através do Serviço Elektor, www.elektor.com/flowcode.

Todos os dias, a todas as horas, a todos os minutos, em todos os momentos há projectistas e entusiastas a pensar, alterar, a fazer engenharia inversa e a desenvolver novos produtos electrónicos. Principalmente por diversão, mas às vezes a diversão transforma-se numa actividade séria. O Universo Elektor faz a ligação entre alguns destes eventos e actividades – para diversão e negócios.

Page 11: Elektor_342_2013

À Volta do Mundo...

www.elektor-magazine.pt | Novembro 2013 | 11

Ponto de Lançamento da “Internet das Coisas”É uma ideia arrojada mas não improvável, que muitos dispositivos comuns vão

ter sensores embebidos, permitindo-lhes comunicar através de uma estrutura similar à Internet. Os produtos de consumo, desde carros a electrodomésticos

e outros dispositivos electrónicos, vão poder ligar-se a este tipo de redes globais e locais. As implicações para indivíduos e para modelos de

negócios são enormes.De acordo com a empresa de marketing ABI Research, mais

de 30 mil milhões de dispositivos vão comunicar, sem fios, atra-vés da Internet of Things (IoT) em 2020. E a revista Circuit Cellar

compilou uma lista de recursos on-line para ajudar as pessoas e as empresas a acompanhar o desenvolvimento da IoT.

Seja um workshop em Itália sobre redes de sensores sem fios, con-tactos dos inovadores neste campo, ou detalhes sobre novas aplicações e descobertas para a IoT, vai encontrar informação útil on-line na página “Inter-net of Things (IoT) Resources”, em circuitcellar.com/featured/iot-resources.Esta é uma lista que se espera ver crescer. Se conhecer algum recurso que deva ser adicionado, envie-o num e-mail para CJ Abate e Mary Wilson em [email protected].

Isso soa bem!No domínio da electrónica de áudio, a Elektor International Media publica as revistas audioXpress e Voice Coil, os catálogos Loudspeaker Industry Sourcebook e World Tube Directory, livros, e muito mais. Estes títulos foram fundados nos EUA por Edward T. Dell (1923-2013) e durante 35 anos ser-viram os construtores de áudio faça-voçê-mesmo, assim como aqueles que trabalhavam na indústria do áudio, com excelentes artigos, projectos, dicas e tecnologias.Acreditando que o universo dos entusiastas deve servir como modelo para a indústria, no que concerne à excelência dos projectos e à qualidade das construções, Ed Dell lançou a Audio Amateur em 1970, uma revista orien-tada exclusivamente ao áudio faça-voçê-mesmo. Dez anos depois, acredi-tando que havia interesse suficiente no mercado dos altifalantes, Ed Dell lançou outra revista em 1980, chamada Speaker Builder, enquanto uma terceira publicação respondia ao crescente interesse em equipamentos de áudio baseados em válvulas termoiónicas.Em 1996 a Audio Amateur passou a chamar-se Audio Electronics, e em 2000 as três revistas foram combinadas numa única revista, com periodicidade mensal, chamada audioXpress.Em 2011, Ed Dell vendeu a sua empresa à Elektor International Media.Uma nova equipa editorial, reforçada pelos autores seleccionados da rede Elektor, está actualmente a trabalhar no relança-mento desta publicação num formato expandido. A nova AudioXpress está orientada para a comunidade global de engenharia de áudio, cobrindo o esforço de Investigação e Desenvolvimento da indústria em muitas novas áreas de aplicação.A audioXpress renovada foi lançada na AES Convention em Nova Iorque (17 a 20 de Outubro de 2013) com uma nova ima-gem gráfica na versão impressa, assim como em formatos totalmente digitais, incluindo uma newsletter regular para os mais de 30 000 membros (actualmente). A audioXpress já está em contacto com a comunidade global de áudio através do Twitter (@audioXP_editor) e do Facebook (facebook.com/audioxpresscommunity). Veja mais em www.audioxpress.com.

(130199)

Page 12: Elektor_342_2013

•Projecto

12 | Novembro 2013 | www.elektor-magazine.pt

Hoje em dia é seguro

afirmar que praticamente todos os veículos modernos (carro, camião, mota,

tractor, etc.) se tornaram, efectivamente, numa verdadeira rede (móvel). Os vários sistemas de controlo destes veículos estão ligados entre si através de uma rede, utilizada para troca de mensagens. Garante-se assim que os vários sub-sistemas operam (e interagem entre si) sempre da forma mais eficaz possível.A maioria dos fabricantes automóveis utilizam o barramento CAN (Controller Area Network) para este fim. As unidades de controlo estão ligadas entre si através de dois condutores cruzados (twisted pair) com resistências de terminação

(em cada extremo), formando assim uma rede CAN. Estes dois condutores são chamados res-pectivamente CAN High e CAN Low. Um veículo pode ter mais do que uma rede CAN.O barramento CAN é um sistema que funciona de forma fiável em ambientes com muita inter-ferência mas que pode, dada a complexidade de algumas redes CAN, tornar-se ocasional-mente bastante difícil, nomeadamente para identificar e resolver problemas.Esta foi uma das principais razões que nos levou ao desenvolvimento do Testador CAN Elektor; mas a possibilidade de desenvol-ver uma ferramenta que facilite a apren-dizagem e a aquisição de experiência com o barramento CAN, assim como com o software associado, foi também

uma forte motivação.O Testador CAN descrito neste artigo é composto por duas placas idênticas (placa A e placa B), que diferem apenas no software presente em cada uma delas. Cada placa pode ser equipada com um mostrador LCD de 4x20 caracteres. As placas comunicam entre si através do protocolo CAN. As placas podem também ser ligadas a um barramento CAN pré-existente.

O Testador CAN permite as seguintes configura-ções (sempre com as mesmas placas):•Configuração de teste, com as placas

A e B, para IDs de 29 bits e/ou 11 bits (automático);

•Representação dos dados presentes no barramento CAN no mostrador LCD

Hugo Stiers (Bélgica)

Testador CANCom características avançadas

O circuito apresentado neste artigo tem todas as características necessárias para podermos concretizar testes e experiências num barramento CAN. Possibilita também a ligação a um barramento CAN já existente, para monitorização e identificação de falhas.

Page 13: Elektor_342_2013

Testador CAN

www.elektor-magazine.pt | Novembro 2013 | 13

(por exemplo: o estado do travão de mão, leitura do odómetro, etc.);

•Análise dos dados através do HyperTerminal;•Teste de funções com os botões de pressão

e LEDs;•Simulação de mensagens.

Todas estas possibilidades serão descritas de seguida.

HardwareComeçamos com uma breve descrição do har-dware. A Figura 1 apresenta o esquema de uma placa; sendo a outra idêntica.O circuito é composto pelos seguintes compo- nentes:•ATmega8515: microcontrolador de 8 bits

(IC1);•SJA1000: controlador CAN (IC4);•PCA82C250: emissor/receptor CAN (IC3);

•MAX232: emissor/receptor RS232 (IC2, para comunicação com o PC);

•Mostrador LCD de 4x20 caracteres (LCD1).O SJA1000 é um processador de fluxo de dados (stream processor) com memórias tampão para emissão e recepção. Este integrado é configurado e controlado pelo ATmega8515. O ATmega8515 coloca mensagens na memória tampão de trans-missão do SJA1000 e lê a correspondente memó-ria tampão de recepção. O SJA1000 é ligado ao ATmega8515 através de um barramento de dados e endereço multiplexado (PA0 – PA7).

Existem também outros quatro sinais de controlo referentes ao SJA1000: CS (chip select), ALE (address latch enable), leitura RD (read) e escrita WR (write). O CS (chip select) deve ser colocado no nível lógico baixo sempre que o ATmega8515 comunica com o SJA1000. O sinal ALE deve ter o nível lógico alto sempre que o barramento con-

Figura 1. Esquema do circuito do Testador CAN. Os ingredientes principais são um microcontrolador, um controlador CAN e um emissor/receptor CAN.

PB0 (OC0/T0)1

PB1 (T1)2

PB2 (AIN0)3

PB3 (AIN1)4

PB4 (SS)5

PB5 (MOSI)6

PB6 (MISO)7

PB7 (SCK)8

RESET9

PD0 (RXD)10

PD1 (TDX)11

PD2 (INT0)12

PD3 (INT1)13

PD4 (XCK)14

PD5 (OC1A)15

PD6 (WR)16

PD7 (RD)17

XTAL

218

XTAL

119

GND

20

PC0 (A8)21

PC1 (A9)22

PC2 (A10)23

PC3 (A11)24

PC4 (A12)25

PC5 (A13)26

PC6 (A14)27

PC7 (A15)28

PE2 (OC1B)29

PE1 (ALE)30

PE0 (ICP/INT2)31

PA7 (AD7)32

PA6 (AD6)33

PA5 (AD5)34

PA4 (AD4)35

PA3 (AD3)36

PA2 (AD2)37

PA1 (AD1)38

PA0 (AD0)39VC

C40

IC1

ATmega8515-16PC

C1+1 VD

D2

C1-3

C2+4

C2-5

VEE

6

T2OUT7

R2IN8

R2OUT9

T2IN10

T1IN11

R1OUT12

R1IN13

T1OUT14

GND15

VCC16

IC2

MAX232ACPE

1 23 45

MISO VCC

GND6MOSI

RESET

K2

X1

8 MHz

S1 S2 S3 S4

C1

22p

C2

22p

C3

22p

C4

22p

C5

1u

C6

1u

C7

1u

C8

1u

C9

1u

1

2

3

4

5

6

7

8

9

11

10

K7

SUB D9

GND

2

TXD1

VCC

3

RXD4VREF5

CANL 6CANH

CANL

CANH

7

RS8

IC3

PCA82C250Y

AD61

AD72

ALE3

CS4

RD5

WR6

CLKOUT7

VSS18

XTAL

19

XTAL

210

MODE11 VD

D312

TX013

TX114

VSS315

INT16

RST17

VDD2

18

RX019

RX120

VSS221

VDD1

22

AD023

AD124

AD225

AD326

AD427

AD528

IC4

SJA1000T

X2

16 MHz

VCC

GND

12

3 K3

12

3 K4

12

3 K5

12

3 K6

GND

VCC

RS

E

DB4DB5DB6DB7

6BDSCK7BD DB5

RESET

RESET

PD0PD1PD2PD3PD4PD5PD6PD7PD2

PD3

PD4

PD5

S5

RESET

PA0PA1PA2PA3PA4PA5PA6PA7

PE1

PC7

PD1

PD0

K9

VSS

1VD

D2

VL3

RS4

R/W

5E

6D0

7D1

8D2

9D3

10D4

11D5

12D6

13D7

14LE

D+A

15LE

D-C

16

LCD1

LCD20X4

RSEDB4

DB5

DB6

DB7

P1

10k

GND

D4D3D2D1

D5D6

R8

1k

R5

1k

R6

1k

R7

1k

R3

120R

R9

120R

R10

120R

R4

10k

R2

1k

R1

1k

R11

10kR12

330R

VCC

GND

GND

VCC VCC

GND

VCC

GND

PA1PA2PA3PA4PA5PA6PA7

PA0

VCC

PE1

PC7PD7

GND

PD6

VCC

12 K8

GND

12

K10

RESET

VCC

ISP120195 - 11

GND

PWR INCA

N BU

S

K1

Page 14: Elektor_342_2013

•Projecto

14 | Novembro 2013 | www.elektor-magazine.pt

de 9 V com um regulador de tensão adicional. O consumo de corrente é reduzido, pelo que para pequenas experiências uma bateria será perfei-tamente suficiente.

SoftwareO software foi escrito em BASCOM (versão de demonstração). O ATmega8515 é programado com o STK500 da Atmel. O software para este projecto é baseado nos exemplos BASCOM (third party Lawicel). Este programa inclui o mínimo indispensável para enviar e receber tramas de dados (mensagens). O programa configura o SJA1000 no modo PELICAN. Neste modo pode enviar e receber identificadores de 11 e 29 bits.O software é composto por sete partes:1. Em primeiro lugar é escrito um endereço

nos registos do SJA1000 (uma vez que o ATmega8515 vê o SJA1000 como uma expan-são da RAM interna).

2. Um identificador (de 29 bits) é transformado numa palavra do tipo Long (4 bytes), já no caso de um identificador de 11 bits, torna-se numa palavra do tipo Word (2 bytes).

3. O ciclo principal Do Loop contém as acções a serem executadas pelo programa. Aqui são chamadas as rotinas Transcantest1, Transcn-test2 e Receivecantest1.

4. A sub-rotina Initsja é utilizada para configu-rar o SJA1000 e contém, entre outras coisas, a configuração da velocidade de transmissão de bits (bit-rate).

5. As sub-rotinas Transcantest1 e Transcantest2 garantem que as tramas de dados (mensa-gens) são transmitidas.

6. A sub-rotina Receivecantest1 é responsável pela recepção das tramas de dados. Esta rotina trata também do processamento necessário (no Atmega8515) dos dados recebidos.

7. Apresentação dos dados no mostrador LCD (modo de 4 bits).

A velocidade de transmissão de bits do SJA1000 é configurada para 250 Kbits/s (o mesmo valor que na norma J1939). Contudo, podem ser pro-gramadas outras velocidades no programa, sem-pre tendo em conta a frequência de relógio do SJA1000 (16 MHz). Pode recorrer à Internet, onde se podem encontrar vários bit rate cal-culators adequados ao SJA1000, e que lhe dão directamente os valores a programar no registos (tmg_0 e tmg_1).Pode encontrar informações adicionais sobre o funcionamento do programa nas folhas de carac-

tiver um endereço, e um nível lógico baixo no caso de dados. Os sinais RD e WR são utilizados para determinar o tipo de operação, isto é, se se trata de um comando de leitura ou escrita na memória do SJA1000.A saída de interrupt (INT) do SJA100 não é utili-zada neste circuito. Através do pino (de entrada) de controlo do modo da ligação do SJA1000, o interface do barramento pode ser configurado para operar com um microcontrolador da Intel ou da Motorola. Uma vez que neste caso se trata de um microcontrolador (da família) Intel, o pino 11 de IC4 é ligado a VCC.O ATmega8515 vê o SJA1000 como uma expan-são da sua memória RAM (interna). É por esta razão que a opção EXTERNAL ACCESS ENABLE deve ser activada (consulte a secção Configura-ção do programa) nas configurações do compila-dor Bascom, para permitir acesso ao barramento interno por parte de periféricos externos.O emissor/receptor PCA82C250T assegura que os dados recebidos no seu pino TXD (nível TTL) são convertidos num sinal diferencial (sob a forma de uma diferença de tensão) no barramento CAN (CanH e CanL, em que os condutores Can-High e Can-Low formam um par entrelaçado, termi-nado com duas resistências de 120 Ω). O sinal diferencial recebido é convertido por este emis-sor/receptor num sinal com níveis TTL, sendo enviado para o SJA1000 através do pino RXD.O ATmega8515 funciona a uma frequência de relógio de 8 MHz, e o SJA1000 a 16 MHz. A velo-cidade de comunicação (baud rate) na ligação com o PC é de 57.600 baud.A placa inclui quatro jumpers (K3 a K6), que permitem optar por ligar os LEDs ou os botões de pressão ao porto D do ATmega8515.O mostrador é utilizado no modo de 4 bits e é ligado ao porto B do microcontrolador. P1 per-mite ajustar o contraste do mostrador.O MAX232 é um velho conhecido; garante a con-versão dos sinais lógicos de 5 V presentes na placa em sinais de 12 V compatíveis com o bar-ramento RS232.K9 é utilizado para ligar uma resistência de ter-minação no barramento CAN.Existe ainda um conector ISP de 6 vias, que per-mite a programação do microcontrolador direc-tamente na placa. Pode, por exemplo, utilizar o programador STK500 para este fim.O circuito é integralmente alimentado a partir de uma tensão de 5 V. Pode utilizar um adaptador de tensão com uma saída regulada, ou uma bateria

Page 15: Elektor_342_2013

Testador CAN

www.elektor-magazine.pt | Novembro 2013 | 15

MontagemNa Figura 2 podemos ver a placa de circuito impresso desenhada para o Testador CAN. A placa tem componentes nos dois lados, embora a maior parte deles seja montada na face dos componentes, como seria de esperar. Na face das soldaduras ficam os LEDs D1 a D6, os botões de pressão S1 a S4 e o conector de 16 vias para o mostrador LCD. O circuito foi originalmente

terísticas e notas de aplicação para o SJA1000 (no que diz respeito aos registos deste circuito integrado).O software está também bastante comentado, o que facilita a compreensão de algumas linhas de código mais difíceis.Pode ainda encontrar um resumo de todo o sof-tware juntamente com algumas explicações (em Inglês) num documento Word [1].

Lista de ComponentesResistênciasR1,R2,R5–R8 = 1 kΩR4,R11 = 10 kΩR3,R9,R10 = 120 ΩR12 = 330 ΩP1 = 10 kΩ (resistência ajustável), por exemplo

Bourns 3386P-1-103LF, Newark / Farnell # 9355030

CondensadoresC1–C4 = 22 pFC5–C9 = 1 µF/63 V, radial

SemicondutoresD1–D6 = LED, vermelho, 3 mmIC1 = ATmega8515-16PC, programado,

Refª 120195-42a placa A, Refª 120195-42b placa B

IC2 = MAX232ACPEIC3 = PCA82C250 (DIP 8 pinos) ou PCA82C250T

(SO8, necessária placa adaptadora)IC4 = SJA1000 (DIP 28 pinos) ou SJA1000T

(SO28, necessária placa adaptadora)

DiversosX1 = Cristal de quartzo 8 MHzX2 = Cristal de quartzo 16 MHz LCD1 = LCD, 4x20 caracteres (Refª 120061-73)K1 = Barra de terminais de 16 viasK2 = Barra de terminais de 6 vias (2x3)K3–K6 = Barra de terminais de 3 vias, com jumperK7 = Conector sub-D 9 vias, em ângulo, PCIK8,K10 = Bloco de terminais de aperto de 2 vias, PCIK9 = Barra de terminais de 2 vias, com jumperS1–S5 = Botão de pressão miniatura c/ contacto

normalmente aberto, por exemplo TE Connectivity 3-1437565-0, Newark / Farnell # 2060813

PCI # 120195-I, consulte [1]

+

1

+

1

c

2

6

C9

9

5

P1

R11

-C4

+

C8

C5

IC2

K6

++

C6

5

K5

C7

K7

K4

IC1

K26

R12

R8R5

X2

CAN

L

R10

K10

R2 R1

K9

C2

CA

NH

+

RESET

S5

C3

IC4

ISP

LCD_CONT

X1

C1

R3

R9

K3

R4

R7R6

K8

IC3

Elektor120195-I

+

+

+ ++ +

Figura 2. A placa de circuito impresso contém componentes nos dois lados: num lado os LEDs, botões de pressão e o mostrador, no outro lado os restantes componentes.

www.e

lekt

orpcbservice.com

Page 16: Elektor_342_2013

•Projecto

16 | Novembro 2013 | www.elektor-magazine.pt

pensado para circuitos integrados de dimensão normal, mas entretanto descobrimos que dois dos integrados já só estão disponíveis em versão SMD: o PCA82C250 (IC3) e o SJA1000 (IC4). Para não alterar as placas já projectadas, recorreu-se a placas adaptadoras (disponíveis em [2], entre outros). Para os nossos leitores que optem pelo controlador pré-programado, iremos também for-necer as duas placas adaptadoras corresponden-tes, para evitar qualquer atraso.Já o mostrador LCD não é necessário em todas as configurações de teste. Tudo depende do fir-mware utilizado (consulte também a documen-tação adicional fornecida gratuitamente [1]).O conector sub-D9 permite a ligação a um PC. Pode, se necessário, ligar neste conector um cabo adaptador USB/RS232 para interface com um PC moderno.Todo o firmware está, como habitualmente, dis-ponível gratuitamente no site da Elektor [1].Cada aplicação precisa de um firmware distinto. Para garantir uma maior simplicidade, a loja Elektor apenas fornece os microcontroladores pro-gramados para a aplicação 4, que será descrita com maior detalhe em breve (120195-42a e b).

Aplicações para o testador CANSegue-se uma breve descrição das várias apli-cações, tendo em especial atenção as versões de firmware necessárias para cada uma delas.

Aplicação 1: Placa A e placa B enviam e recebem mensagens entre si de forma automáticafirmware: 120195-40a (placa A sem LCD)120195-40b (placa B sem LCD)120195-41a (placa A com LCD)120195-41b (placa B com LCD)

Neste caso, ambas as placas enviam e recebem mensagens com IDs de 29 e 11 bits. Cada men-sagem contém 8 bytes de dados, dos quais ape-nas um é utilizado.A placa A transmite mensagens que se desti-nam exclusivamente à placa B, e a placa B envia mensagens que são destinadas exclusivamente à placa A. A recepção processa-se de forma idên-tica: a placa A apenas recebe mensagens da placa B e vice-versa.O byte de dados transmitido aparece no porto D do microcontrolador e é apresentado em ambas as placas através dos quatro LEDs, que se ligam e desligam dois de cada vez. Esta é também uma

Configurações do programa

A opção para acesso externo ao barramento de dados deve ser configurada no compilador BASCOM através do menu: OPTIONS/Compiler/C ‘External Access Enable’.

Configurações para o AVR Studio 4 e STK500:

Os fusíveis de programação no AVR Studio devem ser configurados da seguinte forma:Tamanho da secção de arranque em flash (Boot Flash) = 128 Endereço arranque (boot) =$0F80; BOOTZ = 11Nível de detecção de Brown-out a VCC = 2.7V; (BODLEVEL = 1)Cristal exterior de alta-frequência; Tempo de arranque: 16K CK+64ms;(CKSL = 1111 SUT = 11)

Page 17: Elektor_342_2013

Testador CAN

www.elektor-magazine.pt | Novembro 2013 | 17

rede sem actividade, uma vez que neste caso a totalidade do barramento CAN está à disposição. Podemos também utilizá-lo numa rede activa, mas nesse caso os LEDs irão piscar com um ritmo mais lento, uma vez que haverão outras transmissões de dados no barramento. Sempre que os LEDs piscarem significa que as mensa-gens provenientes das nossas duas placas foram enviadas e recebidas, por entre todas as restantes mensagens também transmitidas no barramento.

Aplicação 2: Testador CAN individual com mostrador LCD (travão de mão, leitura do odómetro, etc.)Firmware: 120195-44a (placa com mostrador LCD, travão de mão)120195-44b (placa com mostrador LCD, leitura do odómetro)

Nesta aplicação o Testador CAN apenas recebe mensagens. Estas são apresentadas de forma legível no mostrador LCD de 4x20 caracteres.

forma de ilustrar o fluxo contínuo de dados entre as duas placas, e de confirmar a ligação correcta das cablagens entre as duas placas.Assim, podemos utilizar esta funcionalidade jus-tamente para testar as ligações de uma rede CAN. Basta ligar as placas em qualquer ponto arbitrário da rede. Ou ligar as placas (A e B) nas extremidades do par de condutores que preten-der testar. Ter sempre em atenção as resistên-cias de terminação (possivelmente) já presentes na rede CAN, e se necessário desligue-as. Cada placa do Testador CAN tem uma resistência de terminação de 120 Ω, que podemos inserir ou remover com o jumper K9 (a impedância do bar-ramento é de 60 Ω).Com esta configuração podemos testar:•Uma interrupção no condutor CanH;•Uma interrupção no condutor CanL;•Troca entre o CanH e o CanL;•CanH e CanL em curto-circuito;•Humidade entre os condutores (ou até a sua

submersão).

Quando algumas destas falhas surgirem (ou se forem permanentes), os LEDs irão imediata-mente parar de piscar. Assim que a(s) falha(s) desaparecer(em), os LEDs irão retomar a sua actividade habitual. Dispõem assim de uma clara indicação visual de falha. Para detectar falhas intermitentes, podemos abanar os cabos e fichas enquanto monitoriza o Testador CAN.Este testador tem um melhor desempenho numa

Aviso de segurança!Actue de acordo com a sua experiência! Ao ligar o Testador CAN num veí- culo e ao enviar mensagens (tramas de dados) na rede, existe a possibi-lidade de ligar os motores, e dos veículos começarem a andar sozinhos; os motores podem também atingir altas rotações, etc. Certifique-se que trabalha num ambiente com a máxima segurança, e não se coloque a si ou a outros em perigo. Siga atentamente as instruções do veículo e do fabricante. E leia sempre as instruções de segurança.

Page 18: Elektor_342_2013

•Projecto

18 | Novembro 2013 | www.elektor-magazine.pt

São utilizados dois botões de pressão e dois LEDs. É importante colocar os jumpers na sua posição correcta:•Os portos D4 e D5 são ligados aos botões

de pressão (jumpers K5: 1-2 e K6: 1-2).•Os portos D2 e D3 são ligados aos LEDs

(jumpers K3: 2-3 e K4: 2-3).Ambas as placas (A e B) podem receber e enviar mensagens.

Placa A:É enviada uma mensagem tanto ao pressionar como ao soltar um ou ambos os botões de pres-são. A transmissão desta mensagem faz acender ou apagar os LEDS da placa B (os LEDs acendem quando os botões são pressionados, e apagam-se ao serem libertados). Apenas um byte de dados é enviado, com o identificador 0C1F134A(H).A Placa A apenas recebe mensagens da placa B, que consistem num byte de dados com o iden-tificador 0C1F1315(H).

Placa B:É enviada uma mensagem quer ao pressionar quer ao soltar um ou ambos os botões de pres-são. A transmissão desta mensagem faz acender ou apagar os LEDS da placa A (os LEDs acendem quando os botões são pressionados, e apagam-se ao serem libertados). Apenas um byte de dados é enviado, com o identificador 0C1F1315(H).A Placa B apenas recebe mensagens da placa A, que consistem num byte de dados com o iden-tificador 0C1F134A(H). O byte recebido contém a informação referente à operação dos LEDs.Na recepção de cada mensagem o respectivo identificador é comparado com o valor esperado, e se não houver uma correspondência os dados não são copiados para o porto D. A Placa A ape-nas aceita dados provenientes da placa B e vice--versa. O mostrador LCD apresenta o estado dos botões de pressão e dos LEDs.O Testador CAN pode ser utilizado nesta apli-cação de várias formas, por exemplo, para tes-tar as ligações de uma rede CAN. Ao operar os botões de pressão na placa A os LEDs na placa B devem reflectir o estado desses mesmos botões, e vice-versa.Esta configuração e software foram também tes-tados numa rede activa (isto é, que transporta outras mensagens). A aplicação funcionou, mas de forma mais lenta (verifique sempre os identi-ficadores em uso, não deve haver sobreposições com os já presentes numa rede em funciona-

Os dois exemplos apresentam:a) o estado do travão de mão de um camião;b) a leitura de um odómetro

(registo de quilómetros).

Estes exemplos ilustram como se podem repre-sentar os dados transmitidos no barramento num formato legível com o auxílio de algumas operações.Esta função é bastante útil para fins de diag-nóstico, por exemplo, para ler um dado sensor durante um ensaio. Nesta aplicação o testador é ligado à rede CAN de um veículo no qual são transmitidas as mensagens a detectar.Se não tivermos um veículo à nossa disposição, podemos sempre simular as mensagens com outra placa. Podemos, por exemplo, utilizar o Tiny-CAN View (consulte o Controlador CAN para automóvel, na Elektor de Abril de 2009 ou o CAN Explorer, na Elektor de Abril de 2008).

Aplicação 3: Visualização de dados no HyperTerminal (baudrate = 57.600)Esta opção está disponível em todas as versões do firmware.O Testador CAN tem um integrado MAX232 para comunicação com o PC. O programa foi escrito de forma a possibilitar a visualização e análise das mensagens num PC através da porta série. Isto aplica-se quer à placa receptora quer à emissora.Os dados recebidos podem também ser registados num ficheiro (através do programa HyperTermi-nal). Pode optar por registar todas as mensagens, ou apenas aquelas que lhe interessarem, através de uma configuração no programa. Por exemplo, o programa em cada placa inclui o respectivo número de componente, para identificar o tipo e a versão do software actualmente programado no microcontrolador. Esta é uma funcionalidade bastante prática, sobretudo em situações em que pretenda utilizar vários controladores (cada um com o seu firmware). Assim, ao ligar cada um deles a um PC podemos determinar facilmente o programa em execução nesse controlador.

Aplicação 4: Testador CAN com botões de pressão e LEDsFirmware: 120195-42a (placa A com LCD)120195-42b (placa B com ou sem LCD)Esta aplicação requer duas placas (Placa A e Placa B).As mensagens têm identificadores de 29 bits e um bit rate de 250 Kbits/s (protocolo J1939).

Page 19: Elektor_342_2013

Testador CAN

www.elektor-magazine.pt | Novembro 2013 | 19

Firmware 120195-43a: envio de mensagens; fir-mware 120195-43b1: recepção de mensagens.Para mais exemplos e explicações das mensa-gens, consulte a Internet [3].Para testar as placas (nomeadamente a visua-lização de dados no mostrador LCD), podemos também neste caso utilizar o Tiny CAN View ou o CAN Explorer.

ConclusãoO Testador CAN requer sempre uma ligação a outra placa, veículo ou configuração de teste, tal como o Tiny CAN View ou o CAN Explorer da Elektor. Boa sorte com os seus testes e expe- riências! (120195-I)

Internet [1] www.elektor.com.pt/120195[2] www.futurlec.com/SMD_Adapters.shtml[3] www.fms-standard.com/down_load/fms_

document_ver02.00vers_11_11_2010.pdf

mento/activa). Logo, também nesta aplicação, o Testador CAN tem um melhor desempenho numa rede sem mais actividade.

Aplicação 5: O Testador CAN como um simulador de mensagensFirmware: 120195-43a (placa A com mostrador LCD, consulte a documentação adicional 120195-W).120195-43b1 (placa B com mostrador LCD, consulte a documentação adicional 120195-W).

Com este firmware é possível simular o envio de mensagens; podemos programar as mensagens numa das placas e utilizar a outra para as apre-sentar num mostrador LCD ou no PC, através do HyperTerminal. Estas mensagens podem ser trans-mitidas automaticamente (no barramento CAN) com uma certa frequência de repetição (tempo de repetição). Podem também ser enviadas pres-sionando qualquer um dos botões de pressão.

Figura 3.A configuração de teste para a aplicação #4. A tensão de alimentação é fornecida por uma bateria de 9 V e um regulador de tensão 7805.

Page 20: Elektor_342_2013

•Projecto

20 | Novembro 2013 | www.elektor-magazine.pt

O sucesso do Medidor LCR de 500 ppm da ElektorO entusiasmo revelado por um grande número de leitores aquando da publicação deste pro-jecto mostram que os instrumentos de medição de elevada precisão ainda estão entre os seus projectos de construção favoritos. O autor, Jean- -Jacques Aubry, emitiu uma correcção no fórum francês [4] – o único erro significativo obser-vado até agora – para o conector USB e SW1. Para o SW1 a dimensão de 1,16 mm deve ser de 0,96 milímetros. Para J19 a dimensão de 8,03 mm deve ser 5,39 milímetros e a dimensão de 3,97 mm deve ser 6,61 milímetros.Foi colocado no site para donwload um desenho corrigido, assim como tem uma nova versão do esquemático que corrige alguns detalhes. Na lista de componentes para o circuito principal, J17, listado junto com J7, J8, ... é na verdade J9. R81 aparece duas vezes, o valor correto é de 7,5 kΩ, R81 = 10 kΩ deve ser excluída. No diagrama do circuito principal, R31 = 750 Ω e no circuito de extensão, a resistência em série com o LED D5 é R8 = 1 kΩ. E finalmente, C30 = 1,5 nF/5% NP0. Estas correcções não afectam o funcionamento do

circuito. A placa de circuito impresso e o módulo pronto a usar mantêm-se inalterados, e como à data (23 de Maio de 2013) tudo está a funcionar bem, não existem alterações desde o terceiro artigo. E já que estamos a falar de detalhes, no início do “Setup inicial” no documento disponí-vel no nosso site, o ficheiro do firmware é cha-mado erradamente de LCR3A_update_Vxxx.hex. O nome correcto é LCR3A_firmware_Vxxx.hex. O autor também responderá de bom grado a qualquer outra pergunta que seja feita directa-mente no fórum em inglês, e tem todo o prazer em discutir alguns pontos do seu medidor LCR de precisão com os utilizadores.Nos três artigos que descrevem o medidor LCR [1], passámos por cima de certos aspectos, para evitar que os artigos ficassem excessivamente longos. Propomos então aqui voltar atrás em alguns detalhes que podem ser interessantes fora do contexto do dispositivo descrito.É o caso de uma rotina especial para a exibição de ícones no ecrã gráfico, que requer um pouco de “ginástica”.Vamos também discutir a precisão das medições, os factores que afectam a precisão e os erros. A leitura deste artigo só tem alguma utilidade se o leitor já teve a oportunidade de ter lido tam-bém os outros três artigos anteriores – particu-larmente, a descrição do circuito e os princípios de medição.

Biblioteca gráfica para o displaySempre que necessário, o bootloader e o firmware usam o display gráfico (GLCD) para apresentar mensagens e imagens. A memória RAM do dis-play está organizada em 128 colunas e 8 linhas de bytes (64 bits ou pixels). Agora, a altura dos elementos a exibir (ícones) excede os 8 bits e são descritos usando vários bytes: a altura dasduas fontes utilizadas é 11 e 16 bits. Todos os ícones estão definidos no ficheiro glcd_bitmaps.c (ou bootloader_glcd_bitmaps.c para a versão minimalista, menos alguns dos ícones e fontes usadas pelo firmware). Se quisermos ser capazes de escrever em qualquer posição, por exemplo,

Jean-Jacques Aubry (Ollioules)

Análise de pontos específicos do Medidor LCR de 500 ppmO luxo da precisão ao alcance de todos

Page 21: Elektor_342_2013

Medidor LCR de 500 ppm

www.elektor-magazine.pt | Novembro 2013 | 21

abrangendo os limites do byte, e se escrever na memória RAM do GLCD é feito em bytes inteiros em endereços bem definidos, é preciso conhecer o conteúdo da memória RAM antes de gravar e executar alguns cálculos inteligente entre os bytes antigos e os bytes novos, de modo a modificar apenas os pixels pretendidos (bits). O número de linhas disponíveis para ligar o mos-trador significa que somos obrigados a usar o mesmo no modo série. Infelizmente, este modo não nos permite ler o conteúdo da memória RAM do display. Portanto, temos de criar um espelho

da memória RAM do GLCD na memória RAM do microcontrolador:uchar xdata GLCD_Array [LCD_COLS][LCD_ROWS];

Estes cálculos entre os bytes antigos e os bytes novos rapidamente parecem indestrinçáveis, uma vez que existem imensos casos diferentes para resolver. A solução que adoptei consiste em representar uma coluna como 64 bits em vez de apenas 8 bytes!Esta solução requer:

Análise de pontos específicos do Medidor LCR de 500 ppmO luxo da precisão ao alcance de todos

1. Criar uma imagem das colunas na memória RAM do microcontrolador, onde cada byte representa um único pixel na coluna da RAM do GLCD, portanto um valor zero ou um.

uchar xdata Column_Array[(LCD_ROWS + 1) * 8]; // + 1 for 2nd byte of char in last line

2. Criar uma rotina para ler a coluna do display (na verdade, o espelho) e escrever, depois de con-verter nos bits equivalentes (0 ou 1), em Column_Array[].

void GLCD_read_column(uchar col){ uchar rows, pix, i, j; i = 0; // read column col, byte after byte for (rows = 0; rows < LCD_ROWS; rows++) { pix = GLCD_Array[col][rows]; // write pix, bit after bit for (j = 0; j < 8; j++) { Column_Array[i] = pix & 0x01; pix >>= 1; i++; } }}

3. Criar uma rotina para ler o conteúdo de Column_Array[], escrever na RAM do GLCD e actuali-zar o espelho.

void GLCD_write_column(uchar col){ uchar rows, pix, i, j; i = 0; // write column col, byte after byte for (rows = 0; rows < LCD_ROWS; rows++) { pix = 0; // read pix, bit after bit for (j = 0; j < 8; j++) { pix += Column_Array[i] << j; i++; } if (GLCD_Array[col][rows] != pix) // only if GLCD RAM byte modified {

Page 22: Elektor_342_2013

•Projecto

22 | Novembro 2013 | www.elektor-magazine.pt

GLCD_set_pos(rows, col); GLCD_WriteData(pix); // draw in GLCD RAM GLCD_Array[col][rows] = pix; // update RAM mirror } }}

4. Criar uma rotina para exibir um ícone pré-definido em formato bitmap. Isto pode ser feito em qualquer lugar, independentemente do seu tamanho (dentro dos limites do display!).

void GLCD_show_icon(uchar code *bitmap, uchar width, uchar height, uchar x, uchar y, uchar mode){ uchar tx, ty, pix, hb, i, j, k; hb = (height - 1) / 8 + 1; // character height in bytes for (tx = 0; tx < width; tx++) // loop for width columns { GLCD_read_column(tx + x); i = y; k = 0; for (ty = 0; ty < hb; ty++) // read hb bytes of icon { pix = *(bitmap + ty * width + tx); // read one byte if (mode == GLCD_PIXEL_OFF) pix = ~pix; for (j = 0; j < 8; j++) // write 8 bits of pix to Column_Array { if (mode != GLCD_PIXEL_INV) Column_Array[i] = pix & 0x01; else Column_Array[i] ^= pix & 0x01; pix >>= 1; if (k == height) break; i++; k++; } } GLCD_write_column(tx + x); }}

5. E, por fim, criar uma rotina para escrita de texto, o que significa apenas escrever uma sequência de ícones que estão definidos numa dada fonte.

void GLCD_draw_text( uchar x, uchar y, uchar *text , uchar mode ){ uchar i, posx, posy; uchar *pt; posy = y - font_height + 1; for( pt = text, i = 0; *pt; i++, pt++ ) { posx = x + i * font_width; if( posx + font_width > LCD_COLS ) { i = 0; posx = x; posy += font_height; } GLCD_show_icon( font + (*pt - font_offset) * font_charsize, font_width, font_height, posx, posy, mode ); }

}

Page 23: Elektor_342_2013

Medidor LCR de 500 ppm

www.elektor-magazine.pt | Novembro 2013 | 23

Precisão da mediçãoA impedância a medir pode ser escrita da seguinte forma:

=+

+× =

+

++

+×Z

V jVI j I

G RG

V I V II I

jV I V II I

G RGx

p q

p q

i sense

v

p p q q

p q

q p p q

p q

i sense

v2 2 2 2

onde Gi e Gv correspondem aos ganhos de corrente e tensão da cadeia de amplificação, e Rsense é a resistência IU_converter.

= × × ×Gi G G G i G iINA BUFFER PGA DAC128 = × × ×Gv G G G v G vINA BUFFER PGA DAC128

Assim, uma vez mais, utilizando a representação em série de uma impedância = +Z R j XS S

=+

+×R

V I V II I

G i G i RG v G vS

p p q q

p q

PGA DAC sense

PGA DAC2 2

=+

+×X

V I V II I

G i G i RG v G vS

q p p q

p q

PGA DAC sense

PGA DAC2 2

Se ignorarmos os erros de digitalização, conforme explicado no paragrafo “Cuidado com o ganho” no primeiro artigo desta série [1], então:

ΔRSRS

= Δ XSXS

= ΔGPGAiGPGAi

+ ΔGPGAvGPGAv

⎣⎢

⎦⎥

i≠v

+ ΔGDACiGDACi

+ ΔGDACvGDACv

⎣⎢

⎦⎥

i≠v

+ ΔRsenseRsense

Podemos dividir o erro global em duas partes principais:•O erro devido à imprecisão no ganho do PGA103 e DAC8811•O erro devido ao real valor das resistências no IU_converter (erro de calibração)A isto temos que adicionar um erro devido à:•Existência do mostrador (± 1 bit no último dígito)•Existência do erro de fase residual (após a compensação do erro de fase)• Flutuação originada pelo ruído de amplificação e de sinais espúrios captados pelos cabos de medida (linhas de energia, etc.)Sendo que, depois, o erro de digitalização aparece nas gamas de 1 e 8, quando a amplitude da tensão ou corrente se tornam muito diferentes devido à falta de ganho.

Factores que afectam a precisãoErro de ganhoDe acordo com a documentação da Burr Brown (TI) para o PGA103

Ganho 1 10 100

Erro de ganho típico ± 0,005% ± 0,02% ± 0,05%

Erro de ganho máximo ± 0,02% ± 0,05% ± 0,2%

Para as gamas de 3-6, o amplificador programável PGA103 tem sempre um ganho unitário e o termo

ΔGPGAiGPGAi

+ ΔGPGAvGPGAv

⎣⎢

⎦⎥

é zero.

Para as gamas 2 e 7, este termo apresenta um erro máximo de ± 0,07% (tipicamente ± 0,025%).Para as gamas 1 e 8, este termo apresenta um erro máximo de ± 0,07% (tipicamente ± 0,025%).

Page 24: Elektor_342_2013

•Projecto

24 | Novembro 2013 | www.elektor-magazine.pt

(130174)Internet[1] Medidor LCR de 500 ppm, Parte 1: www.

elektor.com.pt/110758[2] Medidor LCR de 500 ppm, Parte 2: www.

elektor.com.pt/130022[3] Medidor LCR de 500 ppm, Parte 3: www.

elektor.com.pt/130093[4] www.elektor.fr/forumLCR

De acordo com a documentação da TI para o DAC8811C, a sua precisão máxima relativa é de ± 1 LSB (bit menos significativo). Assim, o erro de ganho máximo será de ± 1/N, onde N é o código que define o ganho do amplificador final.

post_amplification step 0 1 2 3 4 5 6 7

N 7 500 8 700 10 000 11 600 13 500 15 500 18 000 20 700

post_amplification step 8 9 A B C D E F

N 24 000 27 600 32 000 36 900 42 600 49 100 56 700 65 500

Quando os passos post_amplification_U e post_amplification_I são iguais, o termo

ΔGDACiGDACi

+ ΔGDACvGDACv

⎣⎢

⎦⎥

é zero.

Caso contrário, é máximo quando um é zero e o outro é um, pelo que então tem um valor de +1

75001

8700

ou seja, 0,025%.

Nota: Se usar a versão B (DAC8811B) este erro é duplicado.

O IU_converter, cujo ganho em malha aberta não é infinito, também introduz um erro de medição. Como o ganho em malha fechada é ≤ 1 para as gamas de 3-6, o seu ganho em malha aberta de cerca de 80 dB (10.000) @ 10 kHz introduz um erro adicional de cerca de 0,01%. Este é insignificante para as frequências mais baixas.

Nota: No computador, o programa AU2011 permite-lhe visualizar o valor do erro de ganho.

Erro de faseA utilização de um amplificador com uma grande largura de banda (50 MHz) para o IU_converter e as várias compensações de fase [3] permite-nos reduzir os desvios de fase espúrios ao mínimo. No entanto, não são completamente eliminados. Além disso, assume-se que a fase do amplificador final é independente do ganho, o que apenas é válido para uma primeira aproximação, como acontece com os dados entre 0x2000 e 0xFFFF, a sua largura de banda é relativamente constante (cerca de 8 MHz) dentro da banda de funcionamento do DAC8811.Este erro residual irá ter um efeito sobre o valor do parâmetro secundário, que vai ser tanto mais pronunciado quanto mais próxima a componente em fase estiver de 0° e ±90°.

Erro de calibraçãoO erro inicial é o da precisão das resistências montadas na placa de circuito impresso, isto é, ±0,05%. É possível melhorar isto seguindo as indicações fornecidas noutros artigos desta série [3].

Page 25: Elektor_342_2013
Page 26: Elektor_342_2013

•Projecto

26 | Novembro 2013 | www.elektor-magazine.pt

Os dois pontos que merecem a nassa atenção são o facto de que o instrumento parece bloquear durante a medição de resistências (<1 Ω); e a aparente impossibilidade de efectuar acções de ajuste. O autor já abordou sobre estes problemas nos fóruns da Elektor [2] [3], mas achamos que é útil falar sobre eles aqui.Ao medir resistências de valor inferior a 1 Ω, de forma a obter uma tensão de medição ade-quada, o firmware ajusta o ganho de “tensão” de medição para o máximo:

•Gama 1 (Rsense = 100 Ω e ganho do PGA103 a 100);

•Ganho final de amplificação próximo do máximo (passo E ou F).

Infelizmente, a tensão de desvio de entrada é também fortemente amplificada, e usando o cir-cuito publicado na edição de Março de 2013, esta não é compensada. Isto pode fazer com que a tensão máxima na entrada do conver-sor analógico/digital possa ser constantemente ultrapassada.Este fenómeno errático não é sistemático e depende, em grande medida, da tensão de des-vio acumulada de U6 e U4, e na (baixa) resis-tência (ou indutância) que estamos a medir. Este é o primeiro!

Quanto ao segundo, quando não há nenhum com-ponente ligado durante a operação de Ajuste – Circuito-Aberto, também aqui o ganho de medi-ção de “corrente” é máximo para a frequência de 100 Hz (ou 120 Hz):

•Gama 8 (Rsense = 100 kΩ e ganho do PGA103 a 100);

•Ganho final de amplificação próximo do máximo (passo E ou F).

Neste ponto, o circuito de medição de corrente é muito sensível à interferência captada pelos con-dutores de medição, em particular proveniente da linha de alimentação (50 Hz ou 60 Hz). O resul-tado da medição é tão errático que o firmware recusa-se a apresenta-lo no display, e não valida a função de Ajuste. Aqui fica o segundo!

Dois problemas – duas soluçõesDependendo se tem jeito para trabalhar com o ferro de soldar, existem duas soluções:

•Modificarohardware–amelhorsolução–para permitir adaptar o circuito de compen-sação da tensão de desvio de entrada, e ao mesmo tempo actualizar o firmware (v.3.0.0) em conjunto com o programa AU2011 (v.3.0.0). O programa vai detectar automaticamente a alteração do hardware durante a execução, devido à presença da resistência na linha P2.2 (LCD_SI) (Figura 1).•Actualize com as mesmas versões de firmware

(v.3.0.0) e do programa AU2011 (v.3.0.0), sem modificar o hardware.

Importante: A actualização do software para a versão 3.0.0 tem que ser feita de em qual-quer dos casos. A nova versão é igualmente compatível com o hardware original e com a versão modificada descrita abaixo.

Alteração do hardwareTal como concebido originalmente, a compensa-ção da tensão de desvio de entrada é conseguida através da injecção de uma corrente na entrada

Jean-Jacques Aubry (França)

Actualização importante para oMedidor LCR de 500 ppmComo este projecto foi publicado em três partes [1], foram já construídos algumas centenas, para grande satisfação dos seus utilizadores, do autor e também dos editores da Elektor. O autor já corrigiu duas falhas que podiam interferir com o funcionamento do dispositivo em determinas condições.

Page 27: Elektor_342_2013

Medidor LCR de 500 ppm

www.elektor-magazine.pt | Novembro 2013 | 27

da U6. Infelizmente, o resultado é muito depen-dente da resistência (DC) do DUT.O novo circuito (Figura 1) aplica a tensão de cor-recção na saída de U5 (INA128), e desse modo a impedância DUT já não tem qualquer efeito; isto também permite que seja possível separar

a compensação para as medições de corrente e tensão. Para conseguir isto, o pino 5 de U5 já não é ligado à massa analógica, mas a uma tensão ajustável através do software via uma resistên-cia de baixo valor.Existem quatro passos para efectuar a alteração:

Y1

C38

33p

C39

33p R500R

R51

4k7

R12

4k7

R53

470R

D6J17C48

100n

C47

100n

100nRESET

EXT_REF

DAC_SDIDAC_CLKDAC_CSR_SEL_A0R_SEL_A1GAIN_A0GAIN_A1

TIMER_4VBGAP0

R4710k

R45

39k

R46

10R

–5VA

R95

10k

UI_SEL

VDD +5VA

1 23 45 67 89 10

11 1213 14

J16

P1.7/AIN2.7P1.6/AIN2.6P1.5/AIN2.5P1.4/AIN2.4P1.3/AIN2.3P1.2/AIN2.2P1.1/AIN2.1

P1.0/AIN2.0

C8051F061

VRGND0VRGND1

VBGAP0

XTAL1 XTAL2

AIN0GAIN1G

VREF0

AGND

AGND

AGND

DGND

DGND

DGND

AIN0

AGND

DAC0

P2.7

P2.5P2.6

P2.4P2.3P2.2P2.1P2.0

P0.7P0.6P0.5P0.4P0.3P0.2

20 2119 22 27 39 54

14

13

11

1516

17

24252829303132

33

34

3635

3738414243

4445464748

6

3

4

LCD_CSLCD_RES

BKL_CLCD_A0

LCD_SCLLCD_SI

L1L2L4

LED

BKL_CLCD_CSLCD_A0LCD_SI

L2

LCD_RESLCD_SCL

LEDL1L4

BKL_AVDD

J11

HD

J10

HS

J13

LS

J12

LD

R36

100R

R37

100R

J22J21

C25150p 5%

NPO

C23 0805NC

J9

C221n5 5%

NPO

C21 0805NC

J8

C1815n 5%

NPO

C17 0805NC

J7

C1647n 5%

NPOJ6

C1547n 5%

NPO

C1447n 5%

C1315n 5%

NPO

NPO

R191R

R17NC

J3

R1610R

R15NC

J2

J1

R24

100R

R1810k

0.05%R201k

0.05%

R21100R

0.05%R22100k

0.05%

+5VA

–5VA

C20

100n

C12

100n

R2356R

R2556R

R26100R

C19

150p5%

NPO

74HCT4053

U8

GND VEE

VCC

EN

1213

15

14X0X1

Y0Y1

Z0Z1

10

11

16

2

3

6

4

1

5

X

Y

Z

B

A

9C

8 7

74HCT4052

U3

VCC

VEEGND EN

12

10

X0

16

1314 X115 X211 X3

Y0Y1Y2Y3

A

6

B 9

X

1524

Y 3

78

+5VA

–5VA

D11 2

3

BAV199

U4.C

9

10

8

AV+

R27100R

D21 2

3

BAV199R29100R 4

31U6

5

2OPA354

C28100n

C242u2

C31100n

C322u2

AV+

–2V5

R28

10R

D312

3

BAV199

–5VA

U4.D

13

12

14

DBVT

R34820k

R42100k

C35

100n

TP6

D41 2

3

BAV199

U4.A

2

3

1

+5VA

–5VA

R40100R

D51 2

3

BAV199

U4.B

6

5

7

R44100R

U14

31

5

2

OPA725DBVT

+5VA C2

100n

C10

100n–5VA

R2

820k

R8

16k

C9

4u7

C3

4u7

R_SEL_A0

R_SEL_A1

IC411

4

C33

100n

C36

100n

+5VA

–5VA

IC4 = TLC2274

INA128UU5

REF

+VS

–VS

RG

RG

VO

2

31

8

6

5

7

4

R93

100k

R32

100k

R35

56R

R41

56R

UI_SEL C34

100n

–5VA

+5VA

C27

100n

R31750R

C30

1n55%

NPO

J19

+5V

GND

D–D+

1234

USB-BL3

FB

L2

FB

C84

33p

C83

33p

C82

10n

C78

100n

FT235RL

3V3OUT

RXLEDTXLED

SLEEP

RESET

USBDPUSBDM

VCCIO

TXDEN

PWRNTEST

U19

OSCO

AGND

OSCI

DCDDSR

RXDRTSTXD

CTS

DTR

VCC

GND GND GND

2728

25

2223

12

26

1011

14

19

17

1516

20

13

RI

18 21

4

9

5312

6

7

TP3

TP5

TP4

J14

J5J4

R110R

R4

10k

R10

10k

R61k8

R956R

C1

100n

C11

100n

VDD

TP2

R11

8k2

R125k6

C7

47n5%

NPO

R58k2

R13

8k2

R145k6

C57

4n75%

NPO

R38k2

PWRN

TIMER_2

TIMER_4

R38

56R

4

12

R39

56R

GAIN

_A0

GAIN

_A1

R43

2R2

M1

MGND

R_SEL_A0R_SEL_A1

00

10kR18

00

00

00

R21 R20 R22100R 1k 100k

SINUS_TRIM

INPUT_TRIM

UI_SEL UI

00 0

GAIN_A0GAIN_A1 1

1

1

10

0

100

*

FL_10kHz

MAX7404

U2SHDN

GND

ESA

OUT

CLKCOM

VDD

OS

IN

7 4

3

5

6

2

81

TP1

01

* J17 SET FOR FIRMWARE UPDATEAT POWER-ON

Figura 1. Esquemático parcial com as correcções a efectuar para melhorar o desempenho do Medidor LCR de 500 ppm.

Page 28: Elektor_342_2013

•Projecto

28 | Novembro 2013 | www.elektor-magazine.pt

O terceiro passo é mais complexo: o pino 5 de U5 tem que ser isolado da sua ligação actual e ligado à junção de R45, R46 e R47. Isto é pos-sível levantando o pino 5, mas não aconselha-mos isto, pois corremos o risco de danificar U5. Assim, sugerimos antes fazer um pequeno corte limpo nas pistas (visíveis) entre C27 e U5.5, U5.5 e C34, e U5.5 e o furo de passagem adjacente ao J14 (Figura 2). Em seguida, pre-cisa de voltar a ligar C27 e C34 ao furo de pas-sagem (massa analógica) através de pequenos fios (Figura 3), e usar um fio curto para criar a nova ligação entre o pino 5 de U5 e a junção de R45, R46 e R47.Soldar uma resistência de 4,7 kΩ a 10 kΩ entre os pinos 9 e 11 de J17, no lado oposto da placa de circuito impresso (Figura 4). A presença desta resistência permite ao firmware detectar o circuito modificado.

Novos programas [4]A versão 3.0.0 do firmware (LCR3A_firmware_V300.hex) suporta o novo circuito de compensa-ção da tensão de desvio de entrada se, e apenas se, for detectada uma resistência ligada do pino 9 de J17 à massa.Isto resulta num rearranjo nos menus do pro-grama AU2011, que também deve ser actuali-zado para a versão 3.0.0: o menu original de ajuste Input_offset é substituído por dois menus de ajuste Input_offset_U e Input_offset_I, o primeiro com a entrada em curto-circuito, o segundo com a entrada em circuito aberto.Para os utilizadores que não querem (ou não conseguem) modificar o hardware, a solução consiste em limitar o ganho geral na gama 1. Na gama 8 pode ser efectuada uma limitação semelhante, se existir muita interferência no ambiente circundante, impedindo que a opera-ção AJUSTE – CIRCUITO-ABERTO seja realizada correctamente.

A solução de limitação do ganho é válida quer o dispositivo tenha sido modificado, ou não.O valor máximo inicial será de 5 para um dis-positivo não modificado e 15 (passo F) para um dispositivo modificado. Naturalmente, as altera-ções de valor são armazenadas na memória do dispositivo, tal como as outras configurações/opções na janela de Preferências.Além disso, temos também que adicionar dois menus no modo autónomo, e alterar a janela

•Remover R34 para desactivar a compensação de origem. R42 e C35 já não são usados e também podem ser removidos.

•Substituir R46 por uma resistência de 10 Ω (preferencialmente 0805). A resistência de 10 Ω pode também ser soldada directamente aos terminais da resistência de 680 Ω que já está lá.

Figura 2. Alterações ao circuito de compensação da tensão de desvio e entrada em torno de U5.

Figura 4.Esta resistência diz ao firmware que o circuito foi modificado de acordo com as alterações apresentadas nas Figuras 1, 2 e 3.

Figura 3. Não tente dessoldar o pino 5 de U5 – arrisca-se a danificar todo o circuito! Utilize um bisturi para isolar o pino da pista, depois refaça as ligações usando pequenos fios.

Page 29: Elektor_342_2013

Medidor LCR de 500 ppm

www.elektor-magazine.pt | Novembro 2013 | 29

Para concluir, vamos apenas referir que a experi-ência tem demonstrado na prática, que a solução de medição com fichas BNC (Tonghui TH26001A ou HAMEG HZ181) é bastante mais preferível do que simples fichas do tipo banana.

(130307)

Internet[1] Medidor LCR de 500 ppmParte 1: www.elektor.com.pt/110758Parte 2: www.elektor.com.pt/130022Parte 3: www.elektor.com.pt/130093[2] www.elektor.fr/forumLCR (em francês)[3] www.elektor.com/forum/elektor-forums/

fields-of-interest/test-measurement. 1543743.lynkx

[4] www.elektor.com.pt/130093

de Preferências no modo PC quando a opção do menu access to adjust está seleccionada (Figu-ras 5 e 6).Forma efectuadas outras alterações para melho-rar a comodidade de utilização, como a aparên-cia do menu “Port / Close the Port”, muito útil se originalmente escolher a porta errada, tudo o que tem então que fazer a seguir é selecionar a porta correcta e clicar no botão “Open COM” na janela principal.

Medição de altas impedânciasOs sinais de tensão e corrente são amplificados sem qualquer filtro de baixa frequência antes da amostragem. Apenas após a digitalização, ao efectuar a medição ao longo de um número de ciclos da tensão AC da rede eléctrica e levando em conta a média de várias medições, que é possível reduzir a influência dos sinais espúrios captados pelo dispositivo de medição.Isto significa que é possível que o sinal aplicado à entrada do conversor analógico/digital (ADC) exceda por breves instantes a gama de tensões de entrada do ADC e invalide a medição.Portanto, devemos ter um cuidado especial quando estamos a medir impedâncias eleva-das, quando o medidor LCR está configurado para a gama 7 e acima de tudo 8; este é o caso durante o ciclo AJUSTE – CIRCUITO_ABERTO.

•Coloque o circuito electrónico no interior de uma caixa metálica (é preferível o ferro ao alumínio para baixas frequências). Tenha cui-dado se estiver a usar o Medidor LCR no modo autónomo com alimentação via USB, ou no modo PC com um portátil: nestes casos, não existe ligação à terra e vai precisar de fazer uma. O cabo de alimentação da fonte USB não tem um pino para ligar a caixa do Medidor LCR à terra de protecção da linha de alimentação AC, e um portátil alimentado a bateria tam-bém não está ligado à terra.

•Minimize o comprimento dos cabos de medi-ção, e afaste-os dos cabos de alimentação. Para proteger o dispositivo de medição e os cabos dos campos electromagnéticos, coloque uma placa de metal ligada à terra (de prefe-rência, de ferro) com o tamanho adequado entre estes e qualquer cabo de ligação à rede eléctrica AC.

•Se ainda assim a interferência persistir, reduza o ganho da malha de medição da gama 8 (Max DACIndex I no modo autónomo).

Figura 6. A opção de menu access to adjust em Preferences no modo PC.

Figura 5.Dois novos menus no modo autónomo.

Page 30: Elektor_342_2013

•Projecto

30 | Novembro 2013 | www.elektor-magazine.pt

Os principais componentes que podemos encon-trar neste projecto são um sensor de tempera-tura digital DS18S20, um relógio em tempo-real RTC-DS1338 e um microcontrolador PIC18F4520. Dada a resolução de ±0,5 °C dos sensores de temperatura e o tempo mínimo de resposta de 1 segundo, este registador é especialmente apro-priado para monitorização ambiental, por exem-plo, para obter o valor da temperatura em seis locais distintos à mesma altura do chão.

SensoresEste circuito permite um máximo de seis senso-res de temperatura DS18S20, para ler um igual número de temperaturas em localizações remo-tas. Se a sua aplicação apenas precisar de dois ou três sensores, também não há problema.No esquema da Figura 1 pode ver-se que os sensores remotos são ligados aos conectores de 3 pinos K3 a K8 utilizando o sistema 1-Wire

(que na realidade requer três fios). Ao contrário de alguns dos nossos últimos projectos, como a Thermo-Snake [1], neste caso o DS18S20 é utilizado no modo 1-Wire convencional, e não no modo de alimentação parasita. Assim, em vez de estarem ligados num

barramento comum, cada sensor DS18S20 tem a sua própria linha directa até um porto do PIC (RA0–RA5), juntamente com as respectivas resis-tências de rede associadas (R22/R28 e por aí adiante), ligadas ao seu terminal DQ (entrada/saída de dados).Sendo o DS18S20 um componente 1-Wire, cada dispositivo produzido pela Dallas Semiconductors tem um identificador de 64 bits único registado em ROM. O dispositivo envia mensagens utili-zando o formato ilustrado na Figura 2.

Analisando o esquemaRegressando à Figura 1, o integrado IC1, o reló-gio em tempo-real, permite associar etiquetas

Ihab F. Riad (Sudão) (uma terra muito quente!)

Registador de temperatura multicanalEste projecto permite-nos registar até seis leituras de temperatura durante um dado período de tempo, juntamente com a hora em que cada uma delas foi efectuada, tudo num ficheiro .csv armazenado num cartão SD para posterior processamento em PC. É também possível um controlo local através de um teclado numérico e mostrador LCD.

Características•Máximo de seis sensores de temperatura

1-Wire DS18S20•Baseado num PIC18F4520• Intervalo de registo mínimo de 1 segundo•Regista os dados com etiquetas temporais

no cartão SD em formato .csv•Controlo local com mostrador LCD

e teclado numérico•Relógio em tempo-real na placa

Page 31: Elektor_342_2013

Registador de Temperatura Multicanal

www.elektor-magazine.pt | Novembro 2013 | 31

temporais às medidas no microcontrolador, uti-lizando as linhas I2C SDA e SCL. O DS1338 tem um tradicional relógio de cristal de 32,768 kHz, e opera a partir de uma bateria de relógio de 3,0 V (BT1), ou de uma tensão de 3,3 V sempre que a placa é alimentada.Um teclado numérico (comercial) em matriz 4x4, é ligado nos portos RD0–RD7 do microcontrola-dor, e o conector Kb1 é utilizado para ajustar a hora e data, assim como o intervalo de registo. O teclado numérico é também utilizado para arranque e paragem do registo. Um mostrador LCD de 2 linhas de 16 caracteres (2x16), do tipo DOGM162 é utilizado para mostrar a data e hora actuais, assim como o valor instantâneo de tem-

peratura de um dos sensores. A iluminação de fundo do LCD (backlight) é controlada por T1, em reposta aos níveis de controlo enviados pelo microcontrolador PIC no porto RE2. Um cartão SD/MMC no conector Card1 armazena todas as leituras efectuadas. Todas as operações de lei-tura, escrita e controlo do cartão SD são feitas através de cinco portos RC do microcontrolador. O cartão pode ser removido e o ficheiro com a leituras lido num PC, para processamento no seu programa de gráficos e estatísticas prefe-rido, desde que seja compatível com o formato de ficheiro .csv. A presença abundante de gráfi-cos coloridos é normalmente muito eficaz junto dos CEOs, CFOs, CCOs, CYOs, CXYZOs e outras

X11

X22

Vbat3

GND

4

SDA 5

SCL 6

OUT 7VCC

8

IC1DS1338Z

-33+

R3 100R

X1

32.768kHz

X2

8MHzC8

22p

RC7/RX/DT1

OSC1

30

OSC2

31

VSS

6

VDD

28

MCLR/VPP18

VSS

29

RB5/PGM15

VDD

7

RC6/TX/CK44

RB0/INT08

RB1/INT19

RB2/INT210

RC2/CCP136

RC5/SDO43

RC3/SCK/SCL37

RC4/SDI/SDA42

RB6/PGC16

RB7/PGD17

RD2/PSP240

RD3/PSP341

RD4/PSP42

RD5/PSP53

RD6/PSP64

RD7/PSP75

RB3/CCP211

RB414

RA3/AN3/VREF+22

RA2/AN221

RA1/AN120

RA0/AN019

RA423

RA524

RE025

RE126

RE227

RD038

RD139

RC032

RC135

NC12

NC13

NC33

NC34

IC2

PIC18F4520

C9

22p

Kb1

CS

CS

DO

DO

DI

DI

CLK

CLK

RSV8

NC1

CS2

DI3

Vdd4

CLK5

Vss6

DO7

CD9

CD110

Card1

SD Card

CD

CD

3V3

C2

100n

C3

100n

C7

100n

C1

100n

SDA

SDASCL

SCL

R15

1k

D1

R16

1k

D2

K8

1 3

2

IC3AP1117E33G-13

C10

10u

C11

22u

Keypad4 x 4

LoggingCD

1-Wire

R1

10k

R2

10k

3V3

BT1

CR2032

K1

3V3

A1+

1

C1-

2

C2-

19

A2+

20CA

P1N

21CA

P1P

22PS

B23

VOUT

24VI

N25

VDD

26VS

S27

D728

D629

D530

D431

D332

D233

D134

D035

E36

R/W

37CS

B38

RS39

RESE

T40

16 x 2

LCD1DOGM162

3V3

C4

1u

C5

470n

E

ERS

RS D4 D5 D6 D7

D4D5D6D7

R18

1R5

R19

1R5

3V3

T1

BC850

R2018kBL

BL

R9

8k2

R10

8k2

R11

8k2

R12

8k2

K2

C6

100n

R21

10k

R27

56k

K7

1-WireK6

1-WireK5

1-WireK4

3V3

1-WireR22 1k K3

R4 100RR5 100RR6 100RR7 100RR8 100RR13 100RR14 100R

1-Wire

R29

10k

R30

10k

R31

10k

R32

10k

R28

10k

R23 1kR24 1kR25 1kR26 1kR17 1k

CD

3V3

120637 - 11

R33

10k

Figura 1. Esquema do registador de temperatura multicanal. Para além da sua, pode também encontrar alguma inteligência no PIC18F4520.

Page 32: Elektor_342_2013

•Projecto

32 | Novembro 2013 | www.elektor-magazine.pt

engano nos condensadores de carga do cristal, e o oscilador no PIC não irá funcionar.De volta ao mundo digital, o conector K1 é o ponto de acesso para o programador PICKit da Microchip.São também incluídos dois LEDs: D2 para indi-car a actividade de registo, e D1 para indicar a presença de um cartão SD.A tensão de alimentação de 3,3 V para todo o circuito é fornecida por um regulador de baixa queda de tensão (IC3). A tensão máxima de entrada é cerca de 18 V (mas não abuse), e a mínima, cerca de 4,6 V. Quatro pilhas do tipo AA de 1,5 V garantem um extenso período de funcionamento.

Aplicações e processo de desenvolvimentoA primeira unidade foi construída pelo autor para vigiar as diferenças de temperatura em dife-rentes pontos de uma laje de cimento, alguns minutos após a mistura ter sido moldada, e de

pessoas que não entendam nada de electrónica que possam estar na sua audiência.Os fusíveis internos do microcontrolador são con-figurados para que este receba um sinal de reló-gio a partir de um cristal de quartzo externo de 8 MHz (X2). Com a PLL interna activada, a frequên-cia de relógio efectiva no interior do PIC é de 32 MHz. O cristal é flanqueado pelo habitual par de condensadores cerâmicos de 22 pF. Vale a pena fazer aqui uma nota sobre estes dois componen-tes, aparentemente inúteis; um valor errado aqui é suficiente para começarem a acontecer fenó-menos estranhos. Como por exemplo, peritos em C, C++ e outras linguagens de programação que recorrem a componentes do tipo “isto deve dar”, e que de seguida passam horas a fio em modo de depuração do código, ao mesmo tempo que criam tópicos de discussão na Internet que vão da Califórnia até ao MIT e até passam o oceano até Lisboa, tudo porque o microcontrolador está a funcionar a uma frequência totalmente diferente da originalmente projectada. Em conclusão: um

8-BIT CRC 48-BIT SERIAL NUMBER 8-BIT FAMILY CODE (28h) BSM BSM BSLBSL BSL MSB

DS18S20

DQ

GND VDD

Figura 2. Formato da mensagem 1-Wire e disposição de pinos do sensor de temperatura 1-Wire DS18S20 da Dallas.

Sistema de ficheiros Petit FATFsA biblioteca de acesso ao sistema de ficheiros PetitFAT (Petit FATFs) é escrita em ANSI C, e forma uma camada totalmente distinta da camada de E/S no disco. Pode ser incorporada em pequenos microcontroladores com muito pouca memória, mesmo nos casos em que o tamanho da RAM é inferior ao tamanho de um sector (no disco). A Petit FatFs inclui•muito baixo consumo de RAM (memória de trabalho de 44 bytes + alguma memória

para pilha);• código muito reduzido (2-4 Kbytes);• suporta FAT32;•volume e ficheiro único;• funções de escrita em ficheiro com algumas restrições.

No que toca ao interface para a aplicação, a Petit FatFs disponibiliza as seguintes funções: pf_mount (montar/desmontar um Volume); pf_open (abrir um ficheiro); pf_read (ler um ficheiro); pf_write (escrever um ficheiro); pf_lseek (mover ponteiro de leitura/escrita); pf_opendir (abrir uma pasta); e pf_readdir (ler uma entrada de uma pasta).A Petit FatFs é completamente separada da camada de E/S do disco, e como tal requer algumas funções de baixo nível para interagir com o disco. Este módulo de E/S de baixo nível não faz parte do Petit FatFs e deve ser fornecido pelo utilizador. Os controladores exemplo invocam as funções de inicialização do disco, leitura e escrita, respectivamente disk_initialize, disk_readp (parcial) e disk_writep (parcial), e estão também disponíveis nos anexos [4].

Application

RAM Petit FatFs

Low level disk I/O(SD, ATA, USB, NAND)

Stream

Page 33: Elektor_342_2013

Registador de Temperatura Multicanal

www.elektor-magazine.pt | Novembro 2013 | 33

Ficheiro de registoO registador de temperatura conta com a pre-sença de um ficheiro chamado TempLog.csv no cartão SD. O registador é incapaz de criar um novo ficheiro ou de ajustar o seu tamanho. No início de uma nova sessão de registo este ficheiro é aberto e reescrito a partir do primeiro registo. Logo, valores anteriores podem permanecer em disco se um novo ensaio contiver menos amos-tras que o anterior. É assim altamente reco-mendável que utilize o seu PC para escrever um novo ficheiro (em branco) no cartão SD antes de dar início a uma nova operação de registo. Este ficheiro vazio é incluído com o software gra-tuito disponível no site da Elektor [3]— mas pode também ser criado a partir do zero, consulte [4]. Para criar um novo ficheiro de forma muito rápida, escreva:fsutil nomeficheiro createnew\ <[letraunidade>:<tamanho ficheiro bytes>

O tamanho por omissão do ficheiro é de 5 MB, mas pode ser ajustado às suas necessidades.No que toca ao aparecimento dos valores medidos no mostrador LCD, T(emp.)0 é o sensor ligado a K8 (mais perto do mostrador), T1 e K7, e por aí adiante, até T7 em K3 no canto inferior da placa.A cada nova medida é registada uma nova linha/registo no ficheiro TempLog.csv. As colunas 1 e 2 contêm a data e hora, respectivamente. Nas

seguida durante o processo de solidificação. Foi um pedido de um engenheiro mecânico. Era cla-ramente um protótipo, com pouco mais do que o teclado numérico e o LCD. O registo era feito manualmente de duas em duas horas durante alguns dias.Um membro dos fóruns www.elektor-labs.com sugeriu outra aplicação possível, que passa por colocar quatro sensores em paus a intervalos de 1 palmo acima do solo e dois no chão. Pode assim ter uma boa ideia das temperaturas no seu jardim.O código original foi escrito usando o PIC MIKROC da Mikroelektronika. Os testes e depuração foram feitos com o auxílio da placa de desenvolvimento Easypic6, módulo RTC2, e placa MMC/SD, todos da Mikroelektronika. A configuração de teste origi-nal do autor é apresentada na Figura 3. Ao pro-cessar o projecto para publicação, optou-se por desenvolver um novo software nos Laboratórios Elektor, com o auxílio do ambiente de desenvol-vimento Microchip MPLAB X e compilador C18.O cartão SD é acedido (leitura e escrita) atra-vés da biblioteca Petit FatFs, um subconjunto do módulo FatFs para microcontroladores de 8 bits, consulte a caixa.O protocolo 1-Wire foi implementado com o auxí-lio da biblioteca C18 disponível em [2].Todo o código fonte PIC para este projecto foi agrupado num ficheiro arquivo .zip e pode ser obtido gratuitamente na Internet [3].

Figura 3. Desenvolvimento do projecto na casa do autor com o sistema de desenvolvimento EasyPIC6 da Mikroelektronika e alguns add-ons.

Page 34: Elektor_342_2013

•Projecto

34 | Novembro 2013 | www.elektor-magazine.pt

write_byte, ow_read_byte, ow_read_bit, ow_get_temperature.

•no ficheiro mmc.c: disk_initialize, init_spi.

Tudo concluído? Partilhe então os seus resultados com a restante comunidade no fórum www.elektor-labs.com.

ConstruçãoA placa de circuito impresso projectada pela Elektor é apresentada na Figura 4, juntamente com a lista de componentes. A forma e dimen-sões da placa são em grande medida definidas pelo LCD e teclado numérico a montar no topo da mesma. Aos nossos leitores que prefiram fazer as suas placas em casa: os ficheiros .pdf estão disponíveis na Internet [3]. Para além de uma boa quantidade de blocos de pinos, um suporte

colunas seguintes pode ver as medições de tem-peratura por ordem (consulte o parágrafo acima) dos sensores ligados. Se, por exemplo, apenas um dos sensores estiver ligado, o seu valor apa-recerá na terceira coluna, independentemente do conector a que estiver ligado.

… e agora quermudar aquela frequência de relógio do micro-controlador de 8 MHz. Está à vontade, segue-se a lista do que tem de fazer em termos de atra-sos a ajustar:•no ficheiro Globals.c: adaptar delay_ms, delay_us, setup_io (SSPADD).

•no ficheiro LCD.c: adaptar XLCDdelay15ms, …4ms, …100us, …500ns, XLCDdelay.

•no ficheiro SW_I2C.c: todas as funções.•no ficheiro Onewire.c: ow_reset, ow_

Funções das TeclasO teclado numérico é idêntico ao utilizado num telefone (DTMF) com os números 0–9, letras A–D, o sinal cardinal (#), e um asterisco (*). As funções de cada tecla são resumidas de seguida. As teclas não produzem tons DTMF.

A: Ajustar o intervalo de registo 0-9: Alterar o número (avanço automático)D: Sair do menu de configuraçãoNote que cada unidade (hora, minutos, segundos) é ajustada individualmente, sem qualquer influência nas restantes.

B: Arranque/Paragem do registo (o LED indica um registo em curso)

C: Configurar o Relógio 0-9: Alterar o número (avanço automático)D: Sair do menu de configuraçãoNote que cada unidade (hora, minutos, segundos) é ajustada individualmente, sem qualquer influência nas restantes.

0 – 5: Selecção do sensor a ser apresentado no mostrador LCD.

Códigos do Mostrador:

Arranque:

C L K : wd wd d d mo mo y y

R E/U S/N h h mi mi s s

Ecrã Inicial (x = número sensor):

T x : wd wd d d mo mo y y

(-) T T . T h h mi mi s s

Ajustar hora:

S e T wd wd d d mo mo y y

t i m e h H mi mi s s

Configurar registo:

S e t l o g i n t e r v a l

h : h h m : m m s : s s

Page 35: Elektor_342_2013

Registador de Temperatura Multicanal

www.elektor-magazine.pt | Novembro 2013 | 35

[2] Protocolo 1-Wire: http://psychoul.com/electronics/1-wire-onewire-c18-library-2

[3] www.elektor.com.pt/120637[4] Criar um ficheiro de tamanho xx:

http://windowsitpro.com/systems- management/how-can-i-create-file- certain-size-windows-xp-and-later

[5] PetitFAT Fs: http://elm-chan.org/ fsw/ff/00index_p.html

para bateria de relógio e barras de terminais com pinos curvos, a placa contém sobretudo compo-nentes SMD. Destes, o microcontrolador PIC será provavelmente o mais complicado de montar, mas se trabalhar de forma calma e meticulosa pode ser feito. Já foram descritos por várias vezes na Elektor métodos para soldar componentes deste género (com um grande número de pinos).O teclado numérico é montado em quatro espa-çadores de 15-20 mm para não interferir com o clip de suporte da bateria.Finalmente, o LCD é um dispositivo frágil e deve ser manejado e montado com o máximo cuidado.

(120637)

Internet

[1] Registador de temperatura USB, Elektor Setembro 2008, www.elektor.com.pt/070122

Lista de ComponentesResistências(SMD 0805)R1,R2,R21,R28,R29,R30,R31,R32,

R33 = 10 kΩ/125 mW, 5%R3,R4,R5,R6,R7,R8,R13,R14 = 100 Ω/125 mW, 5%R9,R10,R11,R12 = 8,2 kΩ/125 mW, 5%R15,R16,R17,R22,R23,R24,R25,

R26 = 1 kΩ/125 mW, 5%R18,R19 = 1,5 Ω/100 mW, 5%R20 = 18 kΩ/125 mW, 5%R27 = 56 kΩ/125 mW, 5%

Condensadores(SMD 0805)C1,C2,C3,C6,C7 = 100 nF/50 V, 20% C4 = 1 µF/16 VC5 = 470 nF/25 VC8,C9 = 22 pF/50 V, 5%C10 = 10 µF C11 = 22 µF/10 V

SemicondutoresD1,D2 = LED, 3 mm, baixa correnteT1 = BC850, transístor NPN 45V, SOT-23IC1 = DS1338Z33+, relógio em tempo-real, SOIC8IC2 = PIC18F4520-I/PT, 8-bit MCU, programado,

Refª 120637-41IC3 = AP1117E33G, regulador LDO, 3,3V, SOT223IC4,IC5,IC6,IC7,IC8,IC9 = DS18S20, sensor

de temperatura 1-Wire, TO92 (fora da placa)

DiversosKb1 = MCAK1604NBWB, teclado numérico, matriz

4x4, Multicomp X1 = Cristal de quartzo 32,768 kHz, carga 12,5 pF, 20

ppm, 4,1x1,5 mm, Abracon ABS09-32.768KHZ-TX2 = Cristal de quartzo 8 MHz, carga 18 pF, 20 ppm,

5x3,2 mm, Abracon ABM3-8.000MHZ-D2Y-TCard1 = conector uSD (micro SD), Hirose

DM3AT-SF-PEJM5(40)BT1 = CR2032, com suporte para montagem em PCI

LCD1 = Mostrador LCD de 2x16 caracteres DOGM162W-A, iluminação de fundo EA LED55x31-G

K1 = Barra de terminais de 6 vias, em ânguloK2 = Barra de terminais de 2 vias, em ânguloK3,K4,K5,K6,K7,K8 = Barra de terminais de 3 vias,

em ânguloPlaca de circuito impresso,

Serviço Elektor # 120637-1

Figura 4. A placa de circuito impresso desenhada para este projecto contém essencialmente componentes SMD.

www.e

lekt

orpcbservice.com

Page 36: Elektor_342_2013

•Projecto

36 | Novembro 2013 | www.elektor-magazine.pt

Desenvolver um controlador de software para um dispositivo, incluindo a adaptação para este correr em sistemas operativos diferentes, é tudo menos trivial. Acrescente a isto as assinaturas digitais para as quais a cadeia dispositivo/sistema operativo/aplicação adiciona uma complexidade adicional. O investimento de tempo necessário é, por vezes, inaceitável para pequenos projectos. Por esta razão é habitualmente utilizado um porto COM virtual, mas vem com a desvantagem da configuração e tem falta de muitas boas características USB.Um modo USB fiável e que também suporta desen-volvimento de protótipos é a classe USB-HID (Human Interface Device). A utilização da USB HID permite ligar mais dispositivos do que apenas um rato ou um teclado (ver Classe de dispositi-vos USB-HID). O standard USB [1] permite espe-

cificamente a utilização de “outros” dispositivos, incluindo todos os tipos de actuadores e sensores.Como a maioria dos sistemas operativos já têm controladores USB HID não há razão para não os utilizar para os seus próprios projectos. Só neces-sita de construir uma aplicação adequada para correr no sistema operativo do seu computador.

Captura de dadosPode utilizar o interface USB HID para transfe-rir todo o tipo de dados externos para um PC. A aplicação para medir temperaturas é apenas um exemplo do processo. É aqui utilizado um pequeno microcontrolador Attiny85-20 (IC1 no diagrama do circuito, Figura 1) para fornecer o limitado grau de inteligência necessário para manipular as pilhas de protocolos USB, as comu-

Michael Odenwald (Alemanha)

Termómetro USBUm método simples para ler dados do porto USBDurante muitos anos o porto série RS232 dos PCs era considerado um tipo de porto universal MacGyver. Nos nossos dias os PCs já não vêm com este conector de 9 pinos. Quando é necessário ligar algum circuito electrónico ao computador, o porto USB parece ser a única opção. No entanto, o computador necessita de um controlador de software correspondente. É aqui descrita uma elegante solução para este problema.

K2123456

R4

470R

D3

+VCC

C1

100n

C2

25u

DS18B20

IC2VDD

GND1

2

3

R5

10k

VBUS

K1

GND

D–D+

1234

R368R

R168R

D1

3V6

D2

3V6

R2

1k5

MISOSCKRESET

MOSIVCC

GND

120620 - 11

ISP

USBATtiny85-20UP

IC1PB0

PB3PB5

PB2

PB4

VCC

GND

PB1

8

4

7

1 2

3

6

5

Figura 1. O circuito do Termómetro USB é muito simples.

Page 37: Elektor_342_2013

Medir temperaturas via USB

www.elektor-magazine.pt | Novembro 2013 | 37

nicações, e para receber e formatar as medições provenientes dos sensores.Todos os componentes do projecto são alimenta-dos directamente a partir do conector USB K1. O microcontrolador é controlado a 16,5 MHz a partir da sua PLL interna, o que fornece velocidade sufi-ciente para manipular a comunicação USB e elimina a necessidade de um cristal de quartzo externo.IC2 é um sensor de temperatura DS18B20 da Dallas Semiconductor (que faz agora parte da Maxim) que utiliza um interface 1-wire. Este fun-ciona no modo Parasitic Power [2] no qual o pino VDD do componente é ligado à massa e a ali-mentação é retirada da ligação de dados. Este método tem o benefício de aumentar a precisão ao reduzir os efeitos de auto-aquecimento do componente. Os sinais de dados USB são ligados através das resistências R1 e R3, que limitam o fluxo de corrente das linhas de dados no caso de acontecer um curto-circuito. Os díodos zener de 3,6 V, D1 e D2, asseguram que a variação de tensão do sinal de dados não excede a tensão de alimentação do sensor de temperatura.A resistência R2 é utilizada durante a enume-ração USB e assinala ao anfitrião (PC) que está ligado um dispositivo de baixa velocidade (ritmo máximo de 1,5 Mbit/s).Os condensadores C1 e C2 fazem o desacopla-mento e armazenam a tensão da linha de 5 V proveniente do conector USB. K2 é o conector ISP standard de 6 vias para programar o micro-controlador. O LED D3 indica um ciclo de medição activo. Com o sensor de temperatura na resolução máxima, isto dura cerca de 750 ms.

FirmwareO firmware para o termómetro USB foi escrito em linguagem C. As ferramentas de desenvolvi-mento WinAVR [3] são utilizadas para compilar e programar o programa na memória flash do microcontrolador. A estrutura da pilha USB foi implementada com a ajuda do software V-USB [4]. As funções utilizadas para ler os dados pro-venientes do sensor de temperatura foram reti-radas de uma biblioteca projectada por Martin Thomas [5].Depois de o hardware arrancar, são executados o processo de enumeração USB e as pilhas de software USB. Depois o firmware comuta para o modo de funcionamento interno onde é imple-mentada uma máquina de estados. Esta máquina de estados consiste em: executar o protocolo USB, ler dados do sensor, e esperar. Os estados

ocorrem ciclicamente com um tempo de atraso predefinido.Cada ciclo completo de medição dura 10 s. Os pedidos do anfitrião durante este período rece-bem sempre o mesmo valor: as medições mais recentes só estão disponíveis no final de cada ciclo. O processo de medição é controlado com-pletamente pelo microcontrolador, sem a inter-venção do PC. O intervalo de medição ajuda a reduzir o auto-aquecimento do sensor.

O elemento mais importante do firmware é o Descritor USB HID:

/* * USB HID report descriptor */PROGMEM char usbHidReportDescriptor[33] ={ 0x06, 0x00, 0xff, // USAGE_PAGE (Generic Desktop) 0x09, 0x01, // USAGE (Vendor Usage 1) 0xa1, 0x01, // COLLECTION (Application) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255) 0x75, 0x08, // REPORT_SIZE (8) 0x85, 0x0a, // REPORT_ID (10) 0x95, 0x04, // REPORT_COUNT (4) 0x09, 0x00, // USAGE (Undefined) 0xb2, 0x02, 0x01, // FEATURE (Data,Var,Abs,Buf) 0x85, 0x14, // REPORT_ID (20) 0x95, 0x0a, // REPORT_COUNT (10) 0x09, 0x00, // USAGE (Undefined) 0xb2, 0x02, 0x01, // FEATURE (Data,Var,Abs,Buf) 0xc0 // END_COLLECTION};

Classe de dispositivos USB-HIDA classe de dispositivos HID (Human Interface Device) é uma definição parcial dos standards USB que descrevem dispositivos que fornecem ao PC a informação das acções do utilizador. Os exemplos típicos são teclados, ratos ou joysticks. Para além destes tipos normais de dispositivos de entrada o standard USB também permite “sistemas especiais” que podem ser sensores, equipamento de medida, ou até telefones ou auscultadores. Também está antecipada a utilização de leitores, itens para jogos e produtos promocionais.Os HIDs USB beneficiam do facto de o sistema operativo do PC já ter o controlador correspondente (pelo menos para Windows, Linux e OS X), pelo que este é automaticamente instalado, sem intervenção do utilizador, sempre que é ligado um novo HID USB.As desvantagens dos HIDs não devem ser esquecidas: a taxa de transmissão de dados não é particularmente elevada, e estes têm uma quantidade limitada de pontos de ligação USB, restringindo a quantidade de dados que pode ser transferida.

Page 38: Elektor_342_2013

•Projecto

38 | Novembro 2013 | www.elektor-magazine.pt

dimensões (4 e 10 bytes). Um relatório de carac-terísticas permite ler ou escrever valores de/para o sistema USB HID; nesta aplicação apenas se lêem valores.O Report ID 10 é utilizado para pedir um valor de temperatura, e retorna quatro bytes. O Report ID

O Descritor consiste em 33 bytes, e define os possíveis números (10 e 20) de identificação de relatório (Report ID) que a aplicação utiliza para comunicar com o termómetro. Os relatórios são implementados como “Relatórios de Caracterís-ticas” com blocos de informação com diferentes

A classe principal para o termómetro USB é:

namespace WindowsApp{ /// <summary> /// Implementation of the usbDevice with service methods /// based on the class usbGenericHidCommunication /// </summary> class usbDevice : usbGenericHidCommunication { private int tval;

/// <summary> /// Class constructor - place any initialization here /// </summary> /// <param name=”vid”></param> /// <param name=”pid”></param> public usbDevice(int vid, int pid) : base(vid, pid) { }

/// <summary> /// USB HiD Temperature Module Method GetTemeratur() /// </summary> public int GetTemperatur()

Lista de componentesResistênciasR1,R3 = 6 8ΩR3 = 1,5 kΩR4 = 470 ΩR5 = 10 kΩ

CondensadoresC1 = 100 nF cerâmico, passo 5 mmC2 = 25 µF/16 V, electrolítico, passo 2,5 mm

SemicondutoresIC1 = ATtiny85-20UP, DIL 8 pinos, programado,

Serviço Elektor # 120620-41 [6]IC2 = DS1820, encapsulamento TO92 de 3 pinosD1,D2 = ZF3.6, díodo zener, 0,5 WD3 = LED verde, 5 mm

DiversosK1 = conector USB, Tipo A, montagem em placa

de circuito impressoK2 = barra de pinos 2x3 vias, passo 2,54 mmPlaca de circuito impresso,

Serviço Elektor # 120620-1 [6]

PCB

Edge

IC2

R1

R3

R2

D1

D2

C1C2 D3

R4R

5

K2 IC1

K1Figura 2. Disposição dos componentes na placa de circuito impresso.

Page 39: Elektor_342_2013

Medir temperaturas via USB

www.elektor-magazine.pt | Novembro 2013 | 39

de frequência de relógio “divide by eight” está desactivada e se está seleccionada a opção cor-recta para o relógio interno. As configurações estão correctas quando o “low fuse” tiver o valor 0xE1 e o “high fuse” o valor 0xDD.

20 pede uma string de alinhamento de 10 bytes que contém a data (aaaa-mm-dd).

Construir e depois controlarA configuração do circuito não é crítica e a utili-zação de componentes convencionais na placa de circuito impresso desenhada para este projecto (Figura 2) facilita a construção. Os ficheiros correspondentes ao desenho da placa de cir-cuito impresso estão disponíveis gratuitamente na página da Elektor dedicada a este artigo [6]. A Figura 3 apresenta o protótipo já montado, que não necessita de nenhum procedimento de calibração ou de alinhamento.Depois de montar os componentes e de efec-tuar as habituais verificações, já pode progra-mar o firmware no microcontrolador. O firmware está disponível gratuitamente em código fonte ou num ficheiro hexadecimal pronto a progra-mar [6]. Ligue o seu programador AVR-ISP ao conector K2 para programar o microcontrola-dor. É importante verificar se a opção de divisão

{ // Declare an input buffer Byte[] inputBuffer = new Byte[5]; // we expect 5 byte; 1 x ReportID and 4 Byte temperature

inputBuffer[0] = 10; // Read ReportID 10

// Perform the Read Command bool success; success = getFeatureReport(inputBuffer);

if (success == false) { Debug.WriteLine(“Error during getFeatureReport”); return tval; // Error during USB HiD_GetFeature Request so return the old value }

tval = inputBuffer[1] << 24; tval |= inputBuffer[2] << 16; tval |= inputBuffer[3] << 8; tval |= inputBuffer[4];

return tval; // Return the new value } }}

Figura 3. Protótipo do Termómetro USB.

Page 40: Elektor_342_2013

•Projecto

40 | Novembro 2013 | www.elektor-magazine.pt

de acordo com a convenção “signed longint”, o que corresponde a valores entre -550000 e +1250000. O software divide estes valores por 10000, fornecendo valores de temperatura com uma resolução de 12 bits, ou 0,0625 ºC. Este nível de resolução não é estritamente necessá-rio, porque o sensor tem uma precisão de apenas 0,5 ºC. Na Figura 3 pode ver como é apresen-tada a temperatura em Windows.O código fonte compatível com Windows, em conjunto com a biblioteca necessária, estão dis-poníveis gratuitamente em [6]. Em conjunto com este programa baseado em Windows está uma ferramenta de linha de comandos que retorna as medições de temperatura em formato de texto (Figura 4). O código fonte correspondente, o programa compilado e a ferramenta para Linux estão disponíveis em [6].

E é assim…O circuito e o correspondente software para o Ter-mómetro USB demonstram um método simples e prático para ligar o seu próprio dispositivo HID a um PC. Ambos podem facilmente ser adaptados às necessidades da sua aplicação em particular, fornecendo um caminho (quase) sem obstáculos para transferir dados para um PC, considerando que não tem uma grande quantidade de dados para enviar e que aceita uma taxa de transfe-rência relativamente modesta.

(120620)

Internet

[1] www.usb.org/developers/hidpage/[2] http://datasheets.maximintegrated.com/

en/ds/DS18B20.pdf[3] http://winavr.sourceforge.net/[4] www.obdev.at/products/vusb/index.html[5] www.siwawi.arubi.uni-kl.de/avr_projects/

tempsensor/index.html[6] www.elektor.com.pt/120620 [7] www.waitingforfriday.com/index.php/

Open_Source_Framework_for_USB _Generic_HID_devices_based_on_the _PIC18F_and_Windows

[8] www.microsoft.com/germany/express/ products/windows.aspx

Depois de programar o microcontrolador, o cir-cuito pode ser ligado ao PC através de um cabo USB. O sistema operativo vai detectar que foi ligado um novo dispositivo HID e vai instalar automaticamente o controlador HID; é simples! Não interessa se está a utilizar uma versão Win-dows de 32 bits ou de 64 bits, OS X ou Linux, o controlador HID está sempre disponível, sempre com assinatura digital, e vai ser sempre instalado sem a intervenção do utilizador. Alguns segundos depois de ligar o dispositivo, já está.

Software para o anfitriãoA aplicação (para Windows) que recebe e apre-senta as medições do termómetro USB está escrita em linguagem C#. Esta demonstra como é efectuada a comunicação com um dispositivo HID genérico. O software para o anfitrião utiliza as funções usbGenericHIDDevice da biblioteca [7], que interage com as funções API do Windows. O software foi compilado e corre com a versão Express do Visual Studio 2010 [8]. A classe base usbGenericHidCommunication é a mais impor-tante aqui, derivando desta a classe para o nosso próprio dispositivo HID. Nesta classe é imple-mentado o método a ser executado.

O dispositivo HID é identificado e chamado com os parâmetros Vendor ID = 0x0C7D e Product ID = 0x0011. O método GetTemperatur() lê e retorna o valor da temperatura. A gama de medi-ção de temperatura do sensor está entre -55 ºC e +125 ºC. O sensor formata as medições

Figura 4. Temperatura apresentada pela aplicação para Windows.

Figura 5. Apresentação da temperatura utilizando a ferramenta de linha de comandos.

Page 41: Elektor_342_2013
Page 42: Elektor_342_2013

42 | Novembro 2013 | www.elektor-magazine.pt

Ficheiros GerberOs ficheiros Gerber têm o formato necessário para os fabricantes de placas de circuito impresso pro-duzirem estas placas. Pense neles como sendo uma imagem com formato vectorial da placa de

circuito impresso, utilizando canetas com diferen-tes tamanhos (aberturas). Os ficheiros Gerber são habitualmente chamados de ficheiros de plotter, porque são utilizados por uma fotoplotter no pro-cesso de fabrico das placas de circuito impresso. O DesignSpark pode gerar ficheiros Gerber a partir da janela Output Manufacturing Plots, que pode ser aberta no menu Output->Manufacturing Plots. No nosso caso necessitamos das camadas Top Copper, Top Solder Mask, Top Silkscreen, Bottom Copper, Bottom Solder Mask, Drill Data e Drill Ident Drawing, como apresentado na Figura 1.Clicar no botão Options faz abrir as janelas Options, onde pode modificar todas as configura-ções dos ficheiros Gerber, ficheiros de informação de perfuração, e PDFs. Pessoalmente, gosto de utilizar a opção RS-274-X para incluir nos ficheiros Gerber a informação da abertura; e de exportar tudo em unidades SI com uma precisão de quatro casas decimais, como apresentado na Figura 2.

Neil Gruending (Canadá)

DesignSpark Dicas e TruquesDia 5: gerar ficheiros para fabricar placas de circuito impresso

Figura 1. Dados a incluir no ficheiro Gerber.

Hoje vamos gerar os ficheiros Gerber e a informação de BOM para o projecto que fizemos na última vez. O DesignSpark é um excelente suporte para gerar este tipo de ficheiros depois de ser configurado adequadamente.

Page 43: Elektor_342_2013

Tips & Tricks

www.elektor-magazine.pt | Novembro 2013 | 43

Clicar no botão RS-274-X vai ajustar as opções listadas para permitir a inclusão da tabela de aberturas, e clicar no botão RS-274-D vai desa-bilitar todas as opções de saída.Os fabricantes de placas de circuito impresso também necessitam de um ficheiro de informação de perfuração, ou NC (numerically controlled), para saber onde perfurar na placa de circuito impresso. Existem vários tipos de formatos de saída, mas prefiro utilizar o formato (SI) Excellon com precisão de quatro casas decimais, como apresentado na Figura 3.Agora que configurámos os dispositivos de saída, necessitamos de adicionar a linha exterior a todos as camadas para que o fabricante de placas de circuito impresso possa alinhar todas as diferen-tes camadas aquando do fabrico. Para isso cli-que no separador Layers para cada desenho na janela Output Manufacturing Plots, e faça duplo clique em [Board Outline] para aparecer um Y na coluna Selected.Depois de adicionar a linha exterior a todas as camadas, clique no botão Run para gerar todos os ficheiros de saída. Depois de gerar todos os ficheiros, o DesignSpark apresenta um relatório sumário no Notepad, que deve verificar para ter a certeza que não há erros. Todos os ficheiros Gerber têm extensão .GBR, e os ficheiros de informação de perfuração têm extensão .DRL. Eu carrego sempre os ficheiros Gerber e de perfu-ração noutro visualizador Gerber, como o View-Mate [1], para ter a certeza que não há erros. Por exemplo, quando escrevi este artigo confi-gurei acidentalmente alguns factores de escala no ficheiro Gerber, sendo o erro óbvio no visua- lizador Gerber, o que facilita a sua correcção.

Lista de MateriaisUma Lista de Materiais BOM (Bill of Materiasl) apresenta toda a informação dos componentes de um projecto, para que este possa ser fabri-cado. O DesignSpark inclui uma função para gerar BOMs como parte da funcionalidade Reports, no menu Output (Figura 4).O relatório Lista de Materiais incorporado vai gerar uma BOM com os seguintes campos:

•Ref Name: Designador de referência do componente

•Qty: Número de componentes daquela linha; vale sempre 1

•Component: Nome do componente•Value: Valor do componente

Figura 3. A precisão de quatro casas decimais também está definida para os dados de perfuração NC.

Figura 4. Seleccionar a BOM como relatório.

Figura 2. Seleccionar unidades SI com precisão de quatro casas decimais.

Page 44: Elektor_342_2013

44 | Novembro 2013 | www.elektor-magazine.pt

tipos em vez de ter uma linha por componente. Por exemplo, é melhor saber que existem duas resistências de 1 kΩ em vez de as contar manual-mente na BOM. Infelizmente, o DesignSpark não consegue agrupar os componentes numa BOM e apresentar os seus designadores de referência no mesmo relatório, o que significa que temos de criar duas BOMs – uma agrupada, para comprar os componentes, e outra com os designadores de referência para a montagem dos componentes.O primeiro passo é criar um novo relatório cli-cando no botão New. Vai aparecer uma caixa de diálogo onde pode introduzir o nome do relató-rio, e depois disto vai poder editar o conteúdo do relatório. Vai parecer-se com o da Figura 5.O que acontece aqui é que a primeira linha do relatório contém o texto Component Report, seguido pelo cabeçalho standard para relató-rios do DesignSpark, uma linha em branco e depois uma lista de todos os componentes. A parte que temos de editar é a Component List. Para comprar os componentes editei as colu-nas do relatório para conterem Qty, Description, Manufacturer 1, Manufacturer 1 Part Number, Manufacturer 2, Manufacturer 2 Part Number, Manufacturer 3 and Manufacturer 3 Part Num-ber. A BOM para montagem de componentes é semelhante à anterior excepto pela inclusão dos designadores de referência, ou Ref Names na lin-guagem do DesignSpark. A Figura 6 apresenta a configuração que utilizei para as BOMs para montagem de componentes.Para adicionar a suas próprias colunas ao relató-rio, como Manufacturer 1, necessita de escolher Value na caixa de combinação Field. Isto vai habi-litar a caixa Values onde pode seleccionar um ou mais campos de componentes a serem utilizados na coluna pretendida. O campo Caption vai ser o título da coluna no relatório final. Também é importante gerar os relatórios BOM a partir do desenho da placa de circuito impresso e não a partir do esquemático – para ter a certeza que a BOM contém tudo o que necessita.

ConclusãoHoje gerámos ficheiros Gerber e uma BOM rela-tivos ao nosso projecto no DesignSpark, permi-tindo-o ser fabricado. Na próxima vez vamos ver algumas ferramentas de citação on-line presentes no DesignSpark.

(130240)

Internet1. www.pentalogix.com/viewmate.php

•Package: Encapsulamento do componente para placa de circuito impresso

•Manufacturer: Fabricante do componente•MPN: Referência do fabricante

para o componente•RS Part Number: Referência RS

do componente•Description: Descrição do componente

Uma BOM por defeito é adequada se tiver apenas uma referência por componente, mas eu gosto de associar diferentes referências a um com-ponente, pelo que as minhas BOMs têm toda essa informação disponível automaticamente. Também gosto de agrupar os componentes por

Figura 5. Opções de edição para o gerador de relatórios BOM.

Figura 6. Uma forma de compor a BOM

Page 45: Elektor_342_2013
Page 46: Elektor_342_2013

•Projecto

46 | Novembro 2013 | www.elektor-magazine.pt

Nesta época onde a electrónica é fortemente dominada pelos microcontroladores, um cir-cuito como este pode parecer muito simples, até mesmo simplista, mas tem o mérito inegável de não assustar quem quer que seja que esteja apenas a iniciar-se na electrónica!Além do mais, presta-se a todo o tipo de altera-ções, em especial para ampliar as possibilidades ou adaptá-lo a necessidades específicas. Uma boa oportunidade para os iniciantes não se afastarem, começarem com um circuito que funciona de cer-teza. A ideia surgiu de uma necessidade prática que tinha em casa: a reparação do selector de entrada no meu amplificador, um problema bem conhecido e muitas vezes difícil. Estes selectores de várias vias não são standard e são geralmente difíceis de encontrar, quase mesmo impossíveis.

Com este pequeno projecto tenho ainda a inten-ção de reduzir a cablagem de modo a manter tudo o mais simples possível e a minimizar as possíveis fontes de interferência.

Não destinado aos fãs de microcontroladores!A versão do diagrama da Figura 1 foi reformu-lado e melhorada no laboratório da Elektor e depois redesenhado de acordo com o formato usado na Elektor. A minha versão original foi desenhada usando a aplicação DesignSpark PCB. À esquerda temos quatro botões (um por canal) S1-S4 que estão associados a quatro díodos (D1-D4) para formar uma função lógica OR. A saída deste operador lógico é o ponto comum onde se interligam os quatro cátodos. Este vai para o nível

Olivier Croiset (França)

Selector de entrada estéreo bidireccional1ª4 ou 4ª1

Após um recente apelo* feito na nossa revista instigando os nossos leitores a enviar os seus próprios projectos – se possível simples e de preferência em áreas que têm tido menos cobertura na Elektor, como o áudio, por exemplo – recebemos esta sugestão que reúne os dois principais critérios: ser simples e destinado a processar sinais de áudio.

* este apelo ainda está aberto: os seus contributos originais ainda são bem-vindos na Elektor. Coloque-os on-line no nosso site comunitário www.elektor-labs.com; os autores com as sugestões seleccionadas pelo nosso pessoal editorial serão contactados para realizar um contrato de publicação.

Page 47: Elektor_342_2013

Selector de Áudio 4�1 / 1�4

www.elektor-magazine.pt | Novembro 2013 | 47

TR1

EI3022022 (230V)

230V(115V )

F1

0A5 F(1A F) D11

D12

D9

D10C3

1000u25V

C1

100n

C2

10u25V

LM7805IC1

9V

R22

560R

74HC175

IC2

CLRCLK

13

12 10

1415

11

1Q1Q2Q2Q

4Q4Q

3Q3Q

1D

2D

4D

3D

16

67324

5

1

8

9

R23

100k

R17

1k

C4

1u63V

C5

10p

R24100k

S1

R13

1k

S2

R14

1k

S3

R15

1k

S4

R16

1k

D2

D1

D3

D4

4x 1N4148

R21k2

T1

BC237

RE1.A

RE1 ...RE4 = MEDER ElectronicDIP05-2A72-21D

2

6

R6

390R

D5

R31k2

T2

BC237

RE2.A

2

6

R8

390R

D6

R41k2

T3

BC237

RE3.A

2

6

R10

390R

D7

R51k2

T4

BC237

RE4.A

2

6

R12

390R

D8

4x1N4004

D1 ... D4 =

Left1

R1100R

RE1.B

1 7

Right1

R7100R

RE1.C

14 8

Left2

R9100R

RE2.B

1 7

Right2

R11100R

RE2.C

14 8

Left3

R18100R

RE3.B

1 7

Right3

R19100R

RE3.C

14 8

Left4

R20100R

RE4.B

1 7

Right4

R21100R

RE4.C

14 8

LeftOut

RightOut

D13

120316 - 11

Figura 1. O circuito selector de fonte de áudio não é direccional: desenhado para quatro entradas estéreo e uma saída, pode perfeitamente ser usado ao contrário.

um sistema de áudio sem problemas, perfeito para principiantes

Page 48: Elektor_342_2013

•Projecto

48 | Novembro 2013 | www.elektor-magazine.pt

À esquerda, temos quatro pares de fontes de sinal estéreo esquerda/direita (Esquerda 1-4 e Direita 1-4) e à direita uma saída estéreo (Lef-tOut e RightOut).Note que, mesmo que nos estejamos a referir a entrada e saída, isso não é mais do que uma convenção, uma vez que o circuito pode perfei-tamente ser usado em sentido inverso, com uma entrada (LeftOut e RightOut) alimentando quatro entradas de equipamentos de som (Esquerda 1-4 e Direita 1-4).

O que é que acha que acontece se pressionarmos dois botões ao mesmo tempo? Nada, porque as saídas do flip-flop apenas adoptam o nível lógico da sua entrada D quando há uma mudança de nível (transição ascendente) na entrada CLK. Assim, quando um botão é pressionado e não é libertado, a entrada CLK mantém-se no nível lógico alto. Não existe transição ascendente em CLK, pelo que os flip-flops não reagem.

Ao ligar o circuito, a entrada CLR dos quatro flip--flops é mantida no nível lógico baixo enquanto C4 é carregado através de R23. Desta forma, as saídas Q dos flip-flops ficam no nível lógico baixo, independentemente do nível lógico das entradas D. No arranque, os quatro relés são sempre desac-tivados, apenas o LED indicador D13 está aceso.

De entre as possíveis variantes de um circuito como este, podemos referir que dependendo de

lógico alto quando um dos botões for pressio-nado. Isto controla a entrada de relógio (CLK) comum a todos os quatro flip-flops do tipo D (IC2), um 74HC175. Cada vez que a entrada CLK vai para o nível alto, as saídas Q dos flip--flops adoptam o nível lógico presente nesse instante nas suas entradas de dados D (pinos 4, 5, 12 e 13 de IC2). Quando o botão é liberado, a entrada CLK (pino 9) vai imediatamente para o nível lógico baixo. No entanto, nada acontece uma vez que os flip-flops apenas reagem às transições ascendentes na entrada CLK.Ao pressionar um dos selectores de canal S1-S4 também faz com que a entrada D do correspon-dente flip-flop fique ao nível lógico alto. Dessa forma a respectiva saída Q (pinos 1, 7, 10 e 15) também vão para o nível lógico alto. Esta-mos agora na parte do lado direito do diagrama do circuito. A saída Q do flip-flop disparado aciona, por sua vez, um dos transístores T1-T4, que entra em condução e liga o relé Re1-Re4 ligados ao colector dos mesmos. Desta forma, um dos canais de áudio é seleccionado (parte inferior do diagrama do circuito da Figura 1). O LED correspondente ao canal activo (D5-D8) ilumina-se.O díodo de amortecimento representado à direita de cada relé não consiste num compo-nente em separado, mas está sim incluído no interior do dispositivo. A sua função é proteger o transístor contra picos de tensão que aparecem na bobina do relé quando este é desactivado.

Figura 2. As duas saídas distinguem-se usando duas fichas pretas para os canais L e R, enquanto que as quatro entradas R utilizam fichas vermelhas. Dica: repare como os LEDs indicadores são mantidos direitos usando um espaçador cilíndrico.

Page 49: Elektor_342_2013

Selector de Áudio 4�1 / 1�4

www.elektor-magazine.pt | Novembro 2013 | 49

as opções têm as suas desvantagens. De qual-quer modo, mesmo que a minha configuração original não tenha sido adoptada pela Elektor, estou muito contente que o meu pequeno cir-cuito tenha sido publicado, e ainda mais como um artigo normal – estava à espera de conse-guir apenas um quarto de página numa edição de verão!O circuito que apresentamos aqui é alimentado a partir da rede eléctrica, utilizando um trans-formador. No entanto, se tiver requisitos muito rigorosos no que respeita a segurança eléctrica, e a presença do transformador o incomoda, este pode ser instalado longe da placa de circuito impresso, ou até mesmo alimentarmos o cir-cuito selector através de baterias.

(120316)

se o transístor é controlado a partir da saída Q ou Q do flip-flop, podemos energizar apenas um dos relés, como estamos a fazer aqui, ou todos menos um dos relés. Esta última opção não está prevista na placa de circuito impresso que apre-sentamos aqui.

Selecção, uma pista de somPara que este selector estéreo seja fácil de cons-truir, a Elektor desenhou uma soberba placa de circuito impresso usando o Design Spark, embora tenha planeado originalmente duas pla-cas separadas, isto tornaria possível ter os relés e as entradas/saídas com alguma distância dos botões e LEDs, aos quais estariam ligados atra-vés de um cabo plano. Neste caso, temos uma espécie de controlo remoto. É discutível; ambas

Figura 3. Desenho da placa de circuito impresso do selector estéreo. Não há necessidade de um dissipador de calor para o regulador IC1, mas existe espaço para instalar um.

Lista de componentesResistências (0,25W, 1%):R1,R7,R9,R11,R18–R21 = 100 ΩR2–R5 = 1,2 kΩR6,R8,R10,R12 = 390 ΩR13–R17 = 1 kΩR22 = 560 ΩR23,R24 = 100 kΩ

CondensadoresC1 = 0,1 µF/100 V, cerâmicoC2 = 10 µF/100 V, electrolíticoC3 = 1000 µF/25 V, electrolíticoC4 = 1 µF/63 V, electrolíticoC5 = 10 pF/100 V, cerâmico

SemicondutoresD1–D4 = 1N4148D5–D8,D13 = LED amarelo, 5 mmD9–D12 = 1N4004IC1 = LM7805CTIC2 = CD74HC175E

DiversosF1 = Fusível 500 mA, fusão rápidaK1–K10 = Ficha do tipo RCA, PCI Re1–Re4 = Relé DIL, PCI (MEDER type

DIP05-2A72-21D)S1–S4 = Botão de pressão (NA)TR1 = Transformador, secundário 9V @ 2VA

Page 50: Elektor_342_2013

•Projecto

50 | Novembro 2013 | www.elektor-magazine.pt

Mesmo se possuir apenas um modelo de comboio modesto, há hipótese de este ter uma estação e outros edifícios. Em vez de ligar todas as luzes dos edifícios simultaneamente, é mais realista se as luzes puderem ser controladas individu-almente. Na realidade o padrão de luzes muda quando os habitantes se deslocam entre as várias divisões. O módulo de controlo série permite isso, enquanto evita a acumulação de cabos. O seu desenho modular permite-lhe começar com um modelo pequeno e ir adicionando mais módulos à medida que o modelo se torna mais ambicioso.

Cortar custosO circuito não necessita de executar tarefas exi-gentes – para esta aplicação os principais critérios de projecto são o tamanho e o custo do módulo. De facto, o circuito apresentado na Figura 1 con-siste apenas num pequeno microcontrolador de 8 bits e um regulador de tensão. O microcontro-lador é um pequeno PIC12F675P da Microchip, num encapsulamento DIP, que pode ser encon-trado por pouco mais de 1 euro. Este contém

1 kB de memória para programa, 128 bytes de EEPROM e (essencial para a comunicação série) um temporizador/comparador. A EEPROM é uti-lizada para armazenar o endereço do módulo. Todos os pinos podem ser configurados para E/S (excepto os pinos de alimentação), e o oscilador interno é utilizado para fornecer o sinal de relógio do sistema. Descarregue a folha de característi-cas [1] para saber mais sobre este dispositivo.Os ânodos de cinco LEDs para cada módulo são ligados aos blocos de terminais K1 e K2, de mon-tagem em placa de circuito impresso, que estão ligados aos pinos de E/S GP0 a GP2, GP4 e GP5 do microcontrolador. Os cátodos de todos estes LEDs estão ligados ao pino 2 do conector K3. As resistências de 1 kΩ em série limitam para valores seguros as correntes que atravessam os LEDs. O valor de corrente depende do tipo e cor dos LEDs utilizados. A queda de tensão directa situa-se tipicamente entre 1,9 V e 2,5 V, resultando numa corrente entre 2 mA e 2,5 mA. É importante utilizar LEDs de baixa corrente para atingir a iluminação máxima apenas com 2 mA.O estado dos LEDs depende da informação con-tida no sinal recebido via interface série (pino 1 de K3). Isto funciona essencialmente como um interface RS232 utilizando apenas o sinal recebido (RXD), ligado em paralelo a todos os módulos.

Kurt Zerzawy (Suiça)

Iluminação LED para modelos

Modular, Controlada por PC via ligação série

Este pequeno módulo foi projectado para controlar individualmente cinco LEDs, utilizados para iluminar modelos de edifícios. O sinal de controlo é enviado por um

único fio, através de uma porta série RS232 de um PC. Este projecto permite controlar até 250 módulos

com um único PC, que é quase suficiente para uma pequena cidade!

Page 51: Elektor_342_2013

LEDs Série Programáveis

www.elektor-magazine.pt | Novembro 2013 | 51

O sinal de ±12 V proveniente do PC é limitado a +5 V à entrada de cada módulo através da malha de deslocamento de nível de tensão com D1 e T1.A regulação de tensão é efectuada pelo regulador 78L05, que é adequado até 100 mA. Os “suspei-tos do costume” estão em torno deste circuito integrado: o condensador C4 e os dois conden-sadores de 100 nF, C1 e C2. O circuito pode ser alimentado por um adaptador de tensão não esta-bilizado, com uma saída entre 8 V e 12 V DC. A opção mais simples é utilizar um adaptador de tensão conectado a K3. Cada módulo absorve apenas 15 mA, pelo que é possível alimentar muitos módulos a partir de um adaptador de tensão modesto. Quando for necessário utilizar muitos módulos, é mais adequado alimentá-los a partir de um adaptador de tensão externo que forneça 5 V estabilizados à corrente necessária. O regulador de tensão presente no módulo pode ser omitido, substituindo-o por um fio entre as ilhas de entrada e saída.A barra de pinos JP1 serve para programar o microcontrolador, não sendo necessária para um PIC12F675P já programado. A programação do endereço de cada módulo ocorre via interface série e não necessita deste. A disposição dos pinos de JP1 é dada na Tabela 1, que corres-ponde à do conector do programador ISP PicKit2 [2]. Durante a programação é importante assegu-rar que o dispositivo seja alimentado pelo regu-lador presente no módulo ou a partir do progra-mador PicKit2, e não por ambos em simultâneo!

Comunicar com o móduloO interface série é utili-zado para enviar infor-mação de comutação aos LEDs e também para atribuir um ende-reço ao módulo.Durante o arranque o módulo utiliza os pró-prios LEDs para indicar se já tem um endereço: quando todos os LEDs acendem por breves instantes em simultâneo ainda não foi atribuído um endereço; quando os LEDs acendem em sequência já foi atribuído um ende-reço. A comunicação série ocorre através do inter-face RS232 a 9600 baud, sem paridade, e com 1 bit de paragem. Estes parâmetros de comunicação podem ser configurados no programa emulador de terminal a correr no PC. No HyperTerminal (Win-dows) seleccione File/Properties/Configure para efectuar as configurações.

Endereçamento do móduloPara atribuir um endereço ao módulo e armazená--lo na EEPROM interna do PIC12F675P introduza a seguinte sequência:“H”: Casa“F”: Byte mais significativo do endereço hexade-

cimal (F para dispositivos apagados).“F”: Byte menos significativo do endereço hexa-

decimal (F para dispositivos apagados).

K21

2

3

K11

2

3

K33

2

1

JP11 2 3 4 5 6

R31k

R41k

R51k

R21k

R61k

R8

0R

R90R

PIC12F675P

GP5/CLKIN

GP3/MCLR

GP2/AN2GP4/AN3

GP0/AN0GP1/AN1

IC1VDD

VSS

7

1

2

8

4

56

3

78L05IC2

R7

10k

C1

100n

C2

100n

C4

100u25V

T1

BC548D1

BAT85

R1100k

C3

100p

130136 - 11

VCC/

MCLR

VDD

targ

etVS

S (G

ND)

ICSP

DAT/

PGD

ICSP

CLK/

PGC

Auxil

iary

12345

6789

+8...12V

RxD

GND

GND

RS232

SUB D9

Figura 1. Esquemático do módulo de controlo de LEDs.

Tabela 1. Adaptador de programação JP1

Pino de JP1

PIC12F675 Sinal

1 Pino 4: GP3/MCLR Vpp

2 Pino 1: VDD +5 V

3 Pino 8: VSS GND

4 Pino 7: GP0/AN0/icspdat Dados E/S

5 Pino 6: GP1/AN1/icspclock CLK

Pin 6 – –

Page 52: Elektor_342_2013

•Projecto

52 | Novembro 2013 | www.elektor-magazine.pt

“a”: Byte mais significativo dos LEDs seleccio-nados (0 ou 1)

“b”: Byte menos significativo dos LEDs seleccio-nados (0 a F)

“CR”: Carácter Carriage Return para terminar a sequência.

A sequência a introduzir é “HxySab” seguida de “enter”, onde xy é o módulo a endereçar, “S” representa configuração e “ab” é o valor hexade-cimal dos LEDs a serem ligados. Este valor pode variar entre 00h e 1Fh, permitindo ligar qualquer combinação de cinco LEDs.

Exemplo: Para ligar os LEDS 3 e 5 do módulo 12, introduza no terminal a sequência “H12S14” seguida de “enter”.

Construir os módulosA Figura 2 apresenta a placa de circuito impresso para um único módulo, que pode ser encomen-dado no Serviço Elektor. A utilização de compo-nentes convencionais simplifica muito a cons-trução. As duas resistências de 0 Ω, R8 e R9, são necessárias para fazer pontes em algumas pistas da placa de circuito impresso e podem ser substituídas por fios. Utilize um suporte para o microcontrolador.Todos os módulos estão ligados em paralelo. A resistência R1 em cada módulo assegura que é retirada apenas uma corrente muito baixa do sinal RXD, permitindo a ligação de uma grande quantidade de módulos sem problemas. O sinal RXD é gerado no pino 3 do conector sub-D de 9 vias de um PC. A ligação de terra está presente no pino 5 do mesmo conector e é ligado ao fio de terra do cabo de alimentação.O microcontrolador pré-programado, com a refe-rência 130136-41, pode ser adquirido no Serviço Elektor. Em alternativa pode programar o dispo-sitivo se possuir um programador. Esta opção é mais atractiva se necessitar de muitos módulos para o seu modelo. Pode descarregar o firmware em [3], e também os ficheiros CAD para o pro-jecto, que pode abrir no programa de CAD gra-tuito DesignSpark.

(130136)

Internet[1] ww1.microchip.com/downloads/en/

DeviceDoc/41190G.pdf[2] www.microchip.com/pickit2[3] www.elektor.com.pt/130136

“P”: Comando P para programar.“a”“a”“5”: Código de segurança para evitar programa-

ção acidental.“5”: Código de segurança para evitar programa-

ção acidental.“x”: Byte mais significativo (hexadecimal) do

endereço a atribuir ao módulo, x = 0 a F.“y”: Byte menos significativo (hexadecimal) do

endereço a atribuir ao módulo, y = 0 a F.“CR”: Caracter Carriage Return para terminar

a sequência.

A introdução da sequência “HFFPaa55” no termi-nal faz acender todos os LEDs. Introduza agora o endereço pretendido (xy) e finalmente a tecla “enter”. Os LEDs apagam-se e, depois de desli-gar e ligar novamente a alimentação, o endereço vai ser armazenado. Pode ser utilizada a mesma sequência para atribuir endereços diferentes ao módulo.

Exemplo: Para alocar o endereço 23h a um módulo que ainda não tem endereço, introduza a sequência “HFFPaa5523” seguida de “enter”.

Ligar/desligar LEDsControlar o módulo“H”: Casa“x”: Byte mais significativo (hexadecimal) do

endereço da casa seleccionada x = 0 a F“y”: Byte menos significativo (hexadecimal) do

endereço da casa seleccionada y = 0 a F“S”: Comando S para configurar

LISTA DE COMPONENTESResistênciasR1 = 100 kΩR2–R6 = 1 kΩR7 = 10 kΩR8,R9 = 0 Ω

CondensadoresC1,C2 = 100 nFC3 = 100 pFC4 = 100 µF/25 V (por exemplo

25YXF100MEFC6.3X11 da Rubycon)

SemicondutoresD1 = BAT85T1 = BC548IC1 = PIC12F675-I/P (Microchip),

programado (Refª 130136-41)IC2 = 78L05

DiversosJP1 = Barra de terminais de 6 viasK1,K2,K3 = Bloco de terminais

de aperto de 3 vias, PCIPlaca de circuito impresso

(Refª 130136-1) [3]

-OI

(C) E

lekt

or13

0236

-1

R1

R2

R3R4R5

R6

R7C1

C2

C3

C4

IC1

IC2

T1

JP1

K2

K3

K1R8

D1

R9

www.e

lekt

orpcbservice.com

Figura 2. Componentes convencionais numa disposição ordenada.

Page 53: Elektor_342_2013

www.elektor-magazine.pt | Novembro 2013 | 53

É um facto bem conhecido: as bactérias (bugs) matam pessoas e os bugs de software não são excepção. Todos os anos morrem pessoas devido a falhas de software. Alguns acidentes fatais com aviões, helicópteros e carros podem ser atribuídos a problemas de software; mau funcionamento do firmware de dispositivos médicos faz vítimas regularmente; edifícios caem devido aos bugs, e algumas pessoas morrem devido a isso. O mau software até pode afundar barcos. Acreditem, há testemunhas!

Não existe software livre de bugs que faça um trabalho significativo. De acordo com a Wikipedia, o Centro Tecnológico de Garantia de Software da NASA conseguiu produzir software com menos de 0,1 bugs por 1000 linhas de código, o que é considerado extremamente bom. As organiza-ções comerciais não têm tempo e dinheiro para atingir este nível de qualidade. Aparentemente a Microsoft tenta obter um máximo de 0,5 bugs por 1000 linhas quando lança um novo produto, pelo que sabendo que o Windows XP foi compi-lado a partir de 45 milhões de linhas de código, continha mais de 22500 bugs quando foi lan-çado. Estima-se que programas escritos na indús-tria para utilização interna contenham entre 5 e 50 bugs por 1000 linhas.

Os defeitos de software – termo mais oficial para os “bugs” – podem ter várias origens, de progra-mas complexos mal interpretados a programa-ção desleixada. Contrariamente ao entendimento popular, produzir bom software não é fácil porque exige precisão e cuidado extremos. Para cada linha de código, são necessárias pelo menos três coisas:

1. um bom entendimento do problema, e a sua solução, que cada linha de código deve implementar;

2. a capacidade de expressar esta solução cor-rectamente na linguagem de programação disponível;

3. não introduzir gralhas ao escrever o código.

O primeiro ponto é habitualmente a parte mais difícil, especialmente para grandes projectos. É por isso que são essenciais bons arquitectos de software e boas especificações para o sucesso de um projecto.O ponto 2 também é difícil, porque envolve a escolha da linguagem de programação – nem todas as linguagens são adequadas para todas as situações – e a representação de um racio-cínio lógico numa linguagem não natural sem cometer erros.O terceiro ponto parece discutível, mas é difícil de concretizar correctamente. É fácil não colocar um parêntesis ou uma chaveta, trocar dois sím-bolos ou escrever uma gralha. Só neste ponto é que as ferramentas de programação começam a ajudar o projectista, e apenas apontando erros de sintaxe e problemas de compatibilidade e outros conflitos entre objectos de dados.Para reduzir o risco de criar falhas relacionadas com as nossas linhas de código, podemos adi-cionar à lista:

4. assegure-se que o código está escrito de forma clara e compreensível;

5. adicione comentários (e actualize-os) para justificar a linha de código;

6. adira a um standard de código.

Clemens Valens (Elektor)

Normas de programaçãoMelhore o seu circuito com melhor software

Habitualmente gastamos muito tempo e energia a projectar um circuito elegante, bem pensado e robusto. Actualmente, o cérebro de muitos desses circuitos é um microcontrolador que necessita de software para funcionar. Será razoável esperar que um programa bem projectado e bem escrito faça esse circuito funcionar? Aparentemente é. Vamos falar sobre software de qualidade.

Page 54: Elektor_342_2013

54 | Novembro 2013 | www.elektor-magazine.pt

•Labs

Um standard de código real não é apenas um conjunto de regras para melhorar a aparência dos programas; é um conjunto de regras para reduzir erros de programação. Também pode ser utilizado para atingir compatibilidade com um standard de regulação. Como actualmente as linguagens C e C++ são as linguagens de programação mais populares, muitos standards de código são orientados para C/C++. As van-tagens de utilizar um standard de código é que podemos utilizar ferramentas de análise estáticas para verificar a semântica do nosso código em vez de analisar apenas a sintaxe, o que ajuda a identificar possíveis problemas que um com-pilador não consegue encontrar.Assim, que regras podemos esperar num stan-dard de código? Aqui estão alguns exemplos:

Evite funcionalidades explícitas que podem esconder erros de códigoEm C e C++ é legítimo utilizar o operador de atribuição “=” em expressões do tipo Boolean. Por exemplo, a expressão seguinte é válida:

if (sample=get_sample()) sample += 2;Esta linha de código adiciona o valor 2 à variável sample se esta tiver um valor diferente de 0. Por-quê? Bem, em primeiro lugar a função get_sam-ple() é chamada e o valor retornado por esta é atribuído à variável sample. Depois o operador if do tipo Boolean vai verificar se a condição que está dentro dos parêntesis é verdadeira ou falsa. Em C/C++, falso equivale a 0 e verdadeiro equivale a não falso (diferente de 0). Assim, se sample tiver um valor diferente de 0, a condição é considerada verdadeira e a soma vai ser executada.Mas talvez o programador pretendesse isto:

if (sample==get_sample()) sample += 2;A diferença, um carácter “=” adicional, é subtil. Em C/C++, a sequência “==” significa “é igual a”. Assim, o valor 2 vai ser adicionado a sam-ple apenas se o valor desta variável for igual ao valor retornado pela função get_sample(). Não é claramente o comportamento da linha de código anterior.

O item 4 refere-se à utilização de nomes com-preensíveis para funções e variáveis. Embora necessite de mais caracteres, uma variável cha-mada “aceleracao” é muito mais explícita do que “ace” ou apenas “a”.O item 5 é ignorado por muitos programadores. Não porque desconhecem as funcionalidades para comentários da linguagem de programação uti-lizada, mas porque são demasiado comodistas para as utilizar. O último ponto é muito impor-tante. Muitos programadores amadores desco-nhecem completamente os standards de código, enquanto alguns programadores profissionais conhecem-nos mas não os utilizam.

O que é um standard de código?A maioria das companhias de produção de sof-tware têm regras ou convenções com as quais os seus projectistas devem escrever o código. Na Internet pode encontrar standards de código para muitos projectos de código fonte aberto

como o GNU [1] ou o Linux. Contudo, muitas vezes estas regras limitam-se à formatação do código fonte, e o objectivo destas é uniformi-zar o código fonte para facilitar a sua manu-tenção. Como estas regras estão orientadas maioritariamente para a aparência do código, é melhor considerá-las um estilo de código ou de programação.

Devido à abreviação da representação do ano de quatro para dois dígitos, muitos programas

estavam em risco de calcular mal datas depois de 1999. Foram feitos enormes esforços para prevenir isto. Os custos

a nível mundial foram estimados em 425 mil milhões de dólares, mas não aconteceu nada de prejudicial.

Algo semelhante pode acontecer em 19 de Janeiro de 2038 aquando do overflow do contador dos segundos dos sistemas UNIX.

$425,000,000,000

O Windows XP foi compilado a partir de 45 milhões de linhas de código – foi lançado com mais de 22500 bugs

Bug do Ano 2000, Y2K ou bug do Milénio (1999)

Page 55: Elektor_342_2013

www.elektor-magazine.pt | Novembro 2013 | 55

Normas de programação

a um erro de programação, uma ou mais partes de um programa podem tornar-se inalcançáveis, porque o caminho de execução para essas partes é cortado. Observe este sketch para Arduino:

void setup(void){ int a = -1; unsigned int b = 1; if (a<b) a += 2; Serial.begin(115200); Serial.println(a);}

void loop(void){}

Foi erro do programador ou foi intencional? É impossível saber. Alguns compiladores assi-nalam esta troca, mas apenas quando o aviso correspondente está activo. Esta é a razão pela qual os standards de código proíbem esta forma de programar.

Inicialize sempre as expressões com ponteiros Esta é uma armadilha clássica e é a causa de mui-tos bugs. Quando um ponteiro para um objecto de dados não é inicializado – chamado ponteiro “selvagem” – pode apontar para qualquer lado. Não inicializar um ponteiro pode provocar um com-portamento indefinido do programa. Proibir a uti-lização de ponteiros não inicializados é a única solução. Como estes são perigosos, outras lingua-gens de programação restringem a sua utilização.Os ponteiros estão estritamente relacionados com overflows de variáveis em memória, o número 3 do top 25 da CWE/SANS de 2011 dos erros de software mais perigosos (que lida maioritaria-mente com assuntos de segurança de código).[2]

int* p_some_pointer;p_some_pointer = address_of_data_object;p_some_pointer[34] = 3;

Embora, no fragmento de código acima, o pon-teiro seja inicializado antes de ser utilizado, resta uma questão: o índice 34 é válido? Se não, é um erro de overflow.

Utilizar tipos correctos de dadosEm C/C++, variáveis de um tipo podem ser atribu-ídas a outro tipo, desde que o novo tipo de dados tenha uma precisão igual ou superior. Por exemplo, atribuir uma variável do tipo inteiro a outra variável em vírgula flutuante não produz um aviso. O con-trário vai produzir um aviso. Isto significa que, por exemplo, um carácter representado por um valor de 8 bits pode ser adicionado a um valor em vírgula flutuante de 32 bits; o compilador encarrega-se da conversão. Para prevenir a soma de tipos de dados diferentes, um standard de código proíbe a mistura de tipos de dados diferentes excepto se for efectuado um casting – conversão de um tipo de dados para outro – desta forma:

float a = 3.14;int b = (int)a;

Eliminar código não utilizado ou inalcançávelNormalmente, todas as linhas de código de um programa têm uma função. No entanto, devido

Uma perda completa de informação de navegação e de altitude 30 segundos depois do lançamento, devido a erros de projecto e de especificações no sof-tware do sistema de referência inercial, provocaram a desintegração do fogue-tão. O acidente deu-se devido a um valor em vírgula flutuante de 64 bits que não coube num valor do tipo inteiro de 16 bits, provocando um overflow. O valor anormalmente elevado foi cal-culado por um algoritmo destinado ao Ariane 4. Perdas financeiras estimadas: cerca de 400 milhões de dólares.

$400,000,000

Um erro de projecto no mais recente processador Pentium da Intel provocou pequenos erros aquando da divisão de números em vírgula flutuante dentro de uma determinada gama. Embora este bug tenha afectado poucos utilizado-res, tornou-se um pesa-delo de relações públicas e custou à Intel cerca de 650 milhões de dólares. $650,000,000

Page 56: Elektor_342_2013

56 | Novembro 2013 | www.elektor-magazine.pt

•Labs

condição vai ser sempre considerada falsa, e a soma nunca é executada – é inalcançável. Impor a um programador a remoção do código inalcançável vai forçá-lo a repensar o algoritmo e a simplificar o programa. Lembre-se, menos código corresponde a menos bugs.Este exemplo pode ficar compatível com um standard de código removendo a função de teste if, ou aplicando a regra anterior à variável b, isto é efectuar um casting para a tornar tem-porariamente do tipo inteiro:

if (a<(int)b) a += 2;

Limite a complexidadeAs funções grandes tendem a ser complexas, e assim difíceis de compreender e testar. Por esta razão um standard de código pode proibir que uma função ou método não exceda, por exem-plo, 200 linhas de código.As ferramentas de verificação de cumprimento de standards de código podem utilizar outras métricas para medir a complexidade. Um exem-plo é a ciclomática, ou complexidade condicional, que mede a quantidade de caminhos indepen-dentes dentro de uma função. Quanto mais cami-nhos, maior a complexidade da função. Este tipo de complexidade é difícil de estimar por huma-nos – deixe as ferramentas trabalharem por si.

EstiloEmbora tenha sido dito anteriormente que o objectivo de um standard de código não é tor-nar o código bonito, este pode incluir regras de estilo que o tornem fácil de ler, facilitando a identificação de potenciais defeitos. Alguns exemplos destas regras são:

•As linhas de código vão ter, no máximo, 120 caracteres;

•Cada expressão fica numa linha separada;•Devem evitar-se espaços de tabulação;•Todas as separações devem ter pelo menos

dois espaços e serem consistentes em todo o ficheiro de código;

•As expressões pertencentes a blocos if, else if, else, while, do-while ou for devem estar sempre dentro de chavetas, mesmo que for-mem um bloco vazio;

•As chavetas (“{}”) que formam um bloco devem ser colocadas na mesma coluna, em linhas separadas, imediatamente antes e depois do bloco.

Que valor correspondente à variável a vai ser enviado pela ligação série? -1! Porquê? Por-que, em C/C++, se numa comparação um dos valores for do tipo unsigned, o outro valor vai ser silenciosamente “promovido” a unsigned. Mas uma variável do tipo inteiro de 16 bits – como no Arduino – que guarda o valor -1 (0xffff em complemento para dois, o formato utilizado pela maioria dos processadores para represen-tar números negativos) é igual bit a bit a uma variável do tipo unsigned int que guarda o valor 65535 (0xffff). Como 65535 é maior que 1, a

Standards de código popularesSem contar com standards internos, actualmente os standards de código mais conhecidos são (ordenados por popularidade):

MISRA C (e C++) — criado pela Associação de Fiabilidade de Software para a Indústria Automóvel para fornecer assistência à indústria automóvel na aplicação e projecto de software fiável em sistemas automóveis. Tem de ser paga uma contribuição para obter o standard.http://www.misra.org.uk/

CERT C++ (e C) — esta iniciativa do Instituto de Engenharia de Software da Universidade Carnegie Mellon tenta eliminar práticas inseguras na escrita de código, que possam criar vulnerabilidades que possam ser exploradas por entidades maliciosas.https://www.cert.org/ (é utilizado o protocolo http seguro, https.

O CERT está sempre seguro.)

HICPP — C++ de Alta Integridade, disponibilizado gratuitamente pela PRQA, fornece princípios para manutenção, portabilidade, legibilidade, e segurança ao impor restrições à linguagem standard C++ ISO para limitar a flexibilidade que esta permite.http://www.codingstandard.com

JSF AV++ — o standard de código C++ Joint Strike Fighter Air Vehicle gratuito da Lockheed Martin, tem como objectivo ajudar os programadores a desenvolver código livre de defeitos que possam provocar falhas catastróficas que resultem em danos significativos em indivíduos e/ou equipamento. (Não confundir com danos significativos em indivíduos e/ou equipamento provocados por software perfeitamente funcional.)http://www.jsf.mil/downloads/documents/

JSF_AV_C++_Coding_Standards_Rev_C.doc

Pode encontrar aqui uma longa lista de ferramentas de análise para muitas linguagens de programação: http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis

Page 57: Elektor_342_2013

www.elektor-magazine.pt | Novembro 2013 | 57

Normas de programação

[1] Standard de código GNU: http://www.gnu.org/prep/standards/ standards.html

[2] Top 25 dos erros de software mais perigosos: http://cwe.mitre.org/top25/

Muitos programadores não aprovam estas regras; alguns editores de programação fazem-no intro-duzindo tabulações automaticamente. Porquê evi-tar as tabulações? Porque misturam as formata-ções do código quando os vários programadores não utilizam a mesma distância de tabulação.

HábitosOs compiladores de C/C++ vêm com uma grande colecção de bibliotecas standard. Muitos progra-madores confiam nestas bibliotecas, e utilizam--nas habitualmente. Infelizmente, algumas fun-ções incluídas nestas bibliotecas podem exibir comportamentos dependentes da plataforma utilizada, não especificados, indefinidos, depen-dentes da implementação, ou mal definidos. Aqui

estão algumas regras que proíbem a utilização de algumas bibliotecas e funções populares:

• O indicador de erro errno não deve ser utilizado;• A biblioteca <locale.h> e a função setlocale

não devem ser utilizadas;• As funções para manipulação de sinais de

<signal.h> não devem ser utilizadas;• A biblioteca de E/S <stdio.h> não deve ser

utilizada;• As funções atof, atoi e atol da biblioteca

<stdlib.h> não devem ser utilizadas;• As funções abort, exit, getenv e system de

<stdlib.h> não devem ser utilizadas;• As funções de manipulação temporal <time.

h> não devem ser utilizadas;

Note a interdição da biblioteca de E/S <stdio.h>. Sim, deve escrever a sua própria função printf.

A decisão é suaAs regras de exemplo listadas acima – tiradas de standards de código reais – podem parecer severas, mas não são definitivas. Os standards de código permitem excepções para algumas regras. Outras regras são discutíveis, e tem de decidir se as respeita ou não. Na Internet pode encontrar discussões acerca de certas regras, sendo que algumas até estão abertas a interpretações. Até os standards de código estão sujeitos a bugs.

(130271-I)

Bug dos Mísseis Patriot (1991)Durante a primeira Guerra do Golfo, um sistema de mísseis Patriot dos EUA na Arábia Sau-dita falhou a intercepção de um míssil SCUD iraquiano, matando 28 soldados e ferindo 100 outras pessoas. A causa foi um erro de arredondamento nos cálculos temporais executados pelo sof-tware, fazendo-o ignorar alguns alvos.

Terapia de Radiação Mortal (1985-1987, 2000)Devido a software com bugs, o dispositivo médico de terapia com radiações, Therac-25, pode ter calculado mal as doses de radia-ção que devia administrar. Alguns pacientes receberam até 100 vezes a dose recomendada, matando pelo menos três deles. Um bug seme-lhante foi descoberto na Cidade do Panamá em 2000, onde um sof-tware de planeamento de terapia forneceu doses dependendo da ordem por que eram introduzidos os dados. Este bug matou pelo menos cinco pessoas.

bugs de software matam pessoas

28 mortos,

100 feridos

pelo menos

8 mortos e

muitos feridos

Page 58: Elektor_342_2013

•Labs

58 | Novembro 2013 | www.elektor-magazine.pt

Clemens Valens (Elektor)

Pontas soltas

Algumas pessoas têm ideias óptimas e estimulantes mas não sabem como transformá-las em circuitos electrónicos funcionais, enquanto que a outras falta-lhes jeito e/ou tempo para completar o projecto. Abaixo está uma selecção de projectos disponibilizados no Elektor.Labs, que necessitam de ajuda para serem concluídos. Pode aplaudir e/ou ajudar?

Escultura ElectrónicaO autor original (AO) snap pretende criar uma escultura elec-trónica capaz de produzir figuras em 3D movendo individual-mente, para cima e para baixo, cinquenta bolas presas por fios. Existem bons vídeos no YouTube sobre este tipo de aparatos: procure por “BMW kinectic sculpture” ou por palavras seme-lhantes. Enrolar e desenrolar os fios é tarefa para pequenos motores, mas como controlar cinquenta fios de forma sincro-nizada sem gastar demasiado dinheiro ou tempo? O peso total também é um factor importante. O AO procura ajuda; tem experiência em projectos semelhantes? Tem experiência em electrónica, motores e mecânica? Se sim, porque não navegar para www.elektor-labs.com/node/3450 e contribuir.Fotografia: BMW Welt

Cinco projectos interessantesWebcam Exterior Solar Sem Fios Wi-Fi/3G

www.elektor-labs.com/node/3538

Bluetooth Tudo-O-Que-Conseguir-Comer www.elektor-labs.com/node/3032

Controlador PWM para Lanterna www.elektor-labs.com/node/3537

Sniffer RS-485 www.elektor-labs.com/node/3522

Ratoeira Amiga dos Ratos www.elektor-labs.com/node/3433

Page 59: Elektor_342_2013

elektor labs

www.elektor-magazine.pt | Novembro 2013 | 59

www.elektor-labs.com

Inversor de FrequênciaIsto é sobre um projecto que considero interessante, mas que nunca tentei construir.

Como sempre, não fui o único a ver o projecto de PappaBaer’s. Um inversor de frequência ou, para ser mais correcto, um controlador de frequência variável (VFD);

é um dispositivo que controla a velocidade de rotação de um motor AC – normalmente trifásico. A Elektor publicou um dispositivo deste tipo em 1994/1995. O projecto teve muito, mas nunca teve um sucessor. Os componentes utilizados no projecto original são agora difíceis de encontrar ou até obsoletos, e era bem-vinda uma actualização.

Desta vez com software de código fonte aberto, claro. Já esteve envolvido num projecto deste tipo? Se sim, junte-se a nós em www.elektor-labs.com/node/3484.

Fotografia: Wikipedia

Lâmpada de marcha atrás para caravanaUma das coisas boas no Elektor.Labs é a grande diver-sidade de projectos disponibilizados. Há muitas coisas para descobrir graças aos diferentes interesses dos autores. Algum tempo atrás o autor original PLEG54 disponibilizou um projecto para desenvolver um adap-tador para veículos antigos, permitindo-lhes rebocar

caravanas modernas que têm lâmpadas de marcha atrás. A directiva R48 da ECE torna-a obrigatória. ECE-R48? Fiz alguma pesquisa e descobri o Fórum Mundial Para a Harmonização das Directivas para Veículos. Este faz parte da Divisão de Trans-portes Terrestres da Comissão Económica das Nações Unidas Para a Europa (UNECE), que tem a tarefa de criar um sistema de regulação uniforme para o projecto de veículos, para facilitar o comércio internacional. A directiva R48 está relacionada com a instalação de luzes e de dispositivos de sinalização. Isto significa que a ONU decide que luzes e reflectores necessita de ter no seu carro e caravana, e onde os colocar. Sim, isto é muito instrutivo, mas a parte realmente interessante é que o autor necessita de ajuda. Pode encontrá-lo(a) em www.elektor-labs.com/node/3360.Fotografia: Wikipedia

(130200-I)

Ponta de prova de corrente baseada em GMRMedir corrente com um multímetro é fácil; fazê-lo com um osciloscópio é mais complexo. Claro que pode com-

prar uma ponta de prova de corrente especial, mas são dispendiosas, pelo que o autor original RolandSautner decidiu projectar uma.

As pontas de prova mais modestas utilizam sensores de efeito de Hall e trans-formadores AC para medir correntes AC e DC, mas o AO quis utilizar outro método:

magnetorresistência gigante, ou GMR. Porquê? Porque possuía um sensor de campo magnético KMZ51, e não pretendia deixar de o utilizar. O AO avançou bastante, mas encontrou alguns problemas mecânicos. Pode ajudá-lo a transformar o seu projecto numa ponta de prova prática? Se sim, vá a www.elektor-labs.com/node/3423 e adicione as suas ideias e sugestões.Fotografia: Agilent

Nota: AO significa Autor Original, a pessoa que iniciou um projecto ou discussão online. Os AOs que pretendem aparecer na Revista Elektor devem verificar

(regularmente) o endereço de e-mail que utilizam para aceder ao Elektor.Labs. Este é o nosso único meio de contacto.

Page 60: Elektor_342_2013

60 | Novembro 2013 | www.elektor-magazine.pt

•Labs

1

2

3

O PCB Prototyper [1] é uma fresa profissional pro-jectada para efectuar placas de circuito impresso com pistas de isolamento com largura mínima de 100 µm, e furos com diâmetro mínimo de 0,2 mm. No Laboratório Elektor – mais preci-samente na adega – utilizamos o nosso PCB Prototyper quando é necessário fazer rapidamente uma placa de circuito impresso para um protótipo, ou para experimentar for-matos de placas. Inspirados pelo nosso próprio TAPIR [2] reparámos no potencial do PCB Proto-typer para produzir placas de circuito impresso por medida. Depois de alguma acção consegui-mos produzir os formatos que necessitávamos. Para nossa satisfação até conseguimos fabricar uma placa de circuito impresso multicamada (ver foto). Ansiosos por partilhar a nossa experiência positiva consigo, nosso estimado leitor e mem-bro, permita-me guiá-lo, com fotografias, através

dos passos que nos leva-

ram a dominar o nosso PCB Proto-

typer. Foi utilizado o Cadsoft Eagle para projec-

tar uma placa de circuito impresso para exemplo, e o software PCB Module

associado para controlar o PCB Prototyper. Se, como eu, quer aprender a voar com a águia (Eagle), obtenha o livro! [3]

(130128)

Internet Links[1] www.elektor.com/PCBprototyper[2] www.elektor.com/tapir[3] www.elektor.com/eagle

Aurélien Moulin (Laboratório Elektor)

Curso PCB Prototyper

No Eagle, seleccione wire tool para desenhar linhas ou arc tool para produzir formas curvas. Certifique-se que selecciona a camada 20 Dimension e configura a espessura para 0. Faça agora o seu desenho.

Verifique que linhas formam polígonos fechados, para que cada forma delimite uma área interior e uma área exterior.

A área a verde não pertence à placa de circuito impresso, e tem de ser eliminada. As áreas a vermelho vivo vão ser eliminadas do interior da placa.Exporte o seu desenho utilizando um Processador CAM. Seleccione GERBER_RS274X e seleccione apenas a camada Dimension. Clique em File para gravar o resultado (chame-lhe dimension) e clique em Process Job. Repita isto para a face superior (seleccione Top, Pads, e Vias; lembre-se de dar outro nome ao seu ficheiro antes de o processar). Para criar um ficheiro para a fresa, seleccione EXCELLON em vez de GERBER_RS274X, e repita o processo. Isto conclui a parte referente ao Eagle.

Page 61: Elektor_342_2013

www.elektor-magazine.pt | Novembro 2013 | 61

Master Class

4

5

69

8

7

Corra o software PCB Module e abra um novo projecto. Clique em Import Layer, seleccione a sua face superior e importe-a para a camada superior. Importe uma segunda camada e seleccione o seu ficheiro de dimensões. Importe este ficheiro para Board Outline/ /Cut-outs. Importe o ficheiro para a fresa se necessitar.

Pode tentar corrigir isto no Eagle (utilizando uma pista com o formato do carácter), mas assim tem de refazer todo o seu processamento CAM. Como alternativa há uma estratégia rápida: desenhe um polígono (a ferramenta está escondida atrás do separador Create) que siga grosseiramente o centro das linhas do carácter e configure-o para inline utilizando a ferramenta Inside.

Seleccione agora a ferramenta Inside e aplique-a às duas formas a serem eliminadas da placa de circuito impresso. Note que o E não está bem preenchido. Tem de ser feito manualmente. Cancele o último traço (ctrl+z).

Vamos agora definir as inlines e as outlines (termos utilizados pelo PCB Module). Clique no separador Modify e seleccione a ferramenta Outside.

Coloque o ponteiro do rato na forma geral, cuja cor vai mudar de amarelo para branco, indicando que polígono vai ser configurado como linha exterior. Clique na linha exterior.

Necessitamos agora de criar algumas Break-out tabs. Utilize a ferramenta Break-out tabs do separador Create e clique numa zona direita do contorno. O software vai centrá-la automaticamente. As dimensões por defeito são 2 mm, que servem, mas ajuste-as se desejar. Um resultado final adequado deve parecer-se com o aqui apresentado. O seu desenho está pronto para as etapas de processamento habituais (contorno; lista de ferramentas; maquinagem).

Page 62: Elektor_342_2013

•Tech The Future

62 | Novembro 2013 | www.elektor-magazine.pt

O valor simbólico da localização correspondeu ao objectivo da equipa Forze. Em pouco menos de um século a tecnologia da aviação modificou radicalmente o nosso mundo e permite-nos agora viajar para os antípodas em menos de 24 horas. Com este carro de corridas movido a hidrogé-nio, os estudantes esperam contribuir para outra revolução tecnológica, neste caso no universo da energia limpa.O Forze VI pesa pouco menos de 880 kg, atinge uma velocidade máxima de 220 km/h, e acelera dos 0 aos 100 km/h em 4 segundos. O coração deste carro é o sistema de células de combustí-vel, onde o hidrogénio reage com o oxigénio para produzir electricidade e água. A energia eléctrica gerada alimenta dois motores eléctricos, com uma potência nominal de 190 kW (260 HP) cada um. O carro pode correr durante 30 minutos à velocidade máxima com o combustível presente nos seus dois tanques, que, juntos, armazenam 3 kg de hidrogénio a uma pressão de 350 bar.

A sustentabilidade pode ser interessanteEm Hanger 2, Edgar van Os – o fundador da equipa Forze – explicou à audiência o que moti-

vou os estudantes a dedicar tanto tempo (por vezes até 80 horas por semana) ao projecto. “Queremos mostrar que a energia sustentável também pode ser interessante. A sustentabilidade está sempre presente com uma conotação nega-tiva: desliga o interruptor, baixa o aquecimento, etc. A nossa abordagem foi radical e pioneira ao combinar sustentabilidade com corridas. Foi por isso que demos muita atenção à aparência do carro. Este não é um veículo apenas académico, visto que isso não interessa ao público em geral”.Edgar van Os organizou a equipa Forze H2 em 2007 apenas por sua iniciativa, sem nenhuma ajuda de patrocinadores ou professores. O objec-tivo era construir um kart que pudesse parti-cipar na competição Formula Zero em 2008. A primeira série de corridas para carros movidos a hidrogénio foi iniciada para promover tecnologia sem emissões poluentes “da fonte até às rodas”. O veículo Forze I competiu com cinco outras equi-pas universitárias e ganhou.Desde aí a plataforma Forze tem sofrido alguns desenvolvimentos evolutivos, com cada equipa a construir a partir do conhecimento dos seus ante-cessores. O desenvolvimento de uma célula de combustível a hidrogénio projectada e construída

Tessel Renzenbrink (Elektor)

Forze VI: um carro de corrida movido a hidrogénio

O Forze VI, um dos primeiros carros de corridas movido a hidrogénio, foi revelado a 9 de Setembro no aeródromo desactivado de Valkenburg, perto de Katwijk (Holanda). Todos os componentes do carro foram construídos por uma equipa de 70 estudantes na Universidade de Tecnologia de Delft.

Forze VI e a equipa

Page 63: Elektor_342_2013

Carro Movido a Hidrogénio

www.elektor-magazine.pt | Novembro 2013 | 63

pela equipa, para substituir as células de combustível compradas já construídas uti-lizadas anteriormente, começou em 2010. Isto foi instalado pela primeira vez no Forze IV, que marcou a evolução de uma plataforma kart para um pequeno carro de corridas. Agora a equipa apresentou o primeiro carro de corridas convencional na forma do Forze VI.

HidrogénioDepois da introdução feita por Edgar van Os, o Dr. Bernard Dam, um professor de química da Universidade de Tecnolo-gia de Delft, deu uma pequena palestra sobre os benefícios dos sistemas movidos a hidrogénio. “O aquecimento global é um facto científico. Logicamente é necessário reduzir as emissões de CO2 em 80% a 90% até 2050, em relação aos níveis de 1990. A mobilidade tem um papel princi-pal nisto. Reduzir as emissões no sector industrial é difícil, pelo que a resposta tem de ser encontrada no sector dos trans-portes e no ambiente urbano – edifícios de escritórios, casas, lojas e etc.”Actualmente há muito interesse no desen-volvimento de veículos eléctricos equi-pados com baterias. Se a electricidade for gerada a partir de fontes renováveis, o resultado são veículos sem emissões poluentes. Um benefício adicional é que a frota de veículos pode actuar como um sistema de armazenamento distribuído. As energias eólica e solar fornecem uma quantidade flutuante de electricidade, tor-nando necessário a criação de instalações de armazenamento de energia.No entanto, de acordo com o professor “não há a certeza absoluta que venham a estar disponíveis no futuro baterias pouco dispendiosas que permitam aos veículos viajar mil quilómetros”. A popularidade dos carros eléctricos ainda sofre com a “ansiedade da distância”: o medo de ficar parado algures no meio da estrada com a bateria descarregada. Um carro híbrido movido a hidrogénio pode fornecer uma solução utilizando a célula de combustível como extensor de autonomia.O Dr. Bernard Dam e os seus colegas estão a trabalhar num método para pro-duzir hidrogénio sustentável e de baixo

custo no futuro. Agora a maior parte do hidrogénio é obtido a partir do gás natu-ral. Este processo ainda gera emissões de CO2, e o gás natural não é uma fonte renovável. O método investigado pelo Dr. Bernard Dam chama-se divisão da água. Isto envolve a imersão de uma célula electroquímica em água e expô--la à luz solar. A reacção química resul-tante divide a água nos seus elementos constituintes: hidrogénio e oxigénio. Os investigadores atingiram recentemente um marco importante ao obter uma efi-ciência de 4,9%. Isto significa que quase 5% da energia solar é convertida em hidrogénio. Eles esperam atingir uma eficiência de 10% dentro de três anos, o que vai tornar a tecnologia comercial-mente viável.

ÁguaQuando o hidrogénio reage com o oxi-génio na célula de combustível, o único resíduo é água pura. O Forze VI produz um litro de água por minuto. A água pode ser armazenada no carro ou descarregada na estrada. Nenhuma destas soluções é ideal: a primeira torna o carro pesado, enquanto a segunda leva a reclamações dos outros motoristas. Por esta razão a equipa Delft optou por uma alternativa inovadora: utilizar a água para arrefe-cer o sistema de travões, que provoca a evaporação da água. A energia cinética proveniente da travagem é convertida em energia eléctrica e reintroduzida no sistema.O Forze VI da equipa de estudantes é um carro de corridas completo que vai com-petir com carros movidos a gasolina. Este vai entrar em 25 eventos durante a época de corridas 2013-2014. Um dos objec-tivos é quebrar o recorde de velocidade por volta para carros eléctricos na pista de Zandvoort. O recorde pertence actual-mente ao Tesla Roadster. Na famosa pista alemã de Nürburgring, a equipa Forze espera entrar no livro dos recordes como os construtores do carro movido a células de hidrogénio mais rápido que já correu em Nordschleife (Volta Norte).

(130203-I)

Page 64: Elektor_342_2013

•Magazine

64 | Novembro 2013 | www.elektor-magazine.pt

Um filtro passa-banda montado após um osci-lógrafo de multicanal permite gravar em para-lelo múltiplas gamas de frequência. De qualquer modo, a tentativa de avaliar visualmente em tempo-real continua a ser problemática.

Em 1934, Erich Freystedt no Laboratório Cen-tral da Siemens & Halske melhorou o processo através de 27 filtros de terceira oitava em para-lelo na entrada, cobrindo toda a gama de fre-quências audíveis ao ouvido humano de 30 a

Dr. Götz Corinth (Alemanha)

Espectrómetro de frequência de áudio de Freystedt (1935)Restauro de um marco da tecnologia de medição electroacústicaAo contrário dos longos métodos mecânicos, ópticos e gráfico/matemáticos, a engenharia electrónica em meados dos anos 30 trouxe novas possibilidades no que respeita à análise de som. Os circuitos de filtragem permitem bloquear ou deixar passar determinadas frequências individuais ou gamas de frequência. O método de procura de frequência permite obter uma maior resolução para uma largura de banda constante absoluta, mas à custa da velocidade de análise.

Figura 1. Diagrama de blocos (parcial) do Espectrómetro de frequência de áudio. Repare na foto, ‘P’. US Patent Office file # 2,159,790, May 1939; Z. Tech. Phys. 16 (1935), p. 294 (Freystedt)

Page 65: Elektor_342_2013

XXL

www.elektor-magazine.pt | Novembro 2013 | 65

18.000 Hz (análise com largura de banda cons-tante relativa). Observando a Figura 1, após a rectificação e armazenagem de curto prazo em condensadores, os sinais de saída do filtro são continuamente sujeitos a amostragem por um conjunto de comutadores accionados por um motor, e subsequentemente aplicados às placas de deflexão vertical de um tubo de raios cató-dicos (CRT), onde os níveis de sinal aparecem como colunas. Em sincronismo, é aplicada uma tensão DC com o nível adequado às placas de deflexão horizontais. A imagem resultante no oscilógrafo representa uma linha de espectro. Cada linha representa a tensão de pico obtida a partir da filtragem de terceira oitava, levando cuidadosamente em conta as propriedades eléc-tricas dos condensadores e filtros (Figura 2). Dependendo da taxa de amostragem é gerada uma imagem do espectro actualizada continua-mente, onde adicionalmente se pode registar no domínio do tempo.

Onde está o espectrómetro?Existiu a vaga esperança, mas não inteiramente infundada, que um instrumento deste tipo podia

fazer parte de uma colecção privada em Rüssel-sheim, na Alemanha. Rüsselsheim? Hummm... Opel? (mais tarde, General Motors Europe, ed.) O quê! Ensaios de ruído nos motores de auto-móvel? Com efeito, a suspeita foi confirmada: este espectrómetro foi construído em 1937 e parece estar relativamente bem conservado, pelo menos por fora.Os 85 kg de peso do Espectrómetro AF foram arrastados para o laboratório de electrónica do autor com alguma dificuldade.

Onde está a documentação? Em termos de documentação, inicialmente haviam apenas duas publicações originais da Siemens e ATM Scientific Publications. Mais tarde, um cole-cionador holandês foi contactado através da Divi-são Técnica Acústica (Physikalisch-Technische Bundesanstalt). Ele estava disposto e conseguia fornecer a documentação original da Siemens. Os papéis tinham ainda uma indicação de preço do equipamento em 1938: RM (Reichsmark) 5.500. De acordo com o organismo de estatística federal da Alemanha, isso corresponde a 35.000 dólares ou 25.000 euros referenciado ao ano de 2000.

Figura 2. Esquema detalhado do Espectrómetro (documentação do fabricante Rel beschr. 745 g. (Siemens & Halske company, 1936). Schwere Wörter translated: Eingang = Entrada; Verstärker = Amplificador; Übersteurungsschutz = Protecção contra sobrecarga; Bandpaß = passa-banda; Gleichrichter = Rectificador; Braunsche Röhre = Tubo de raios catódicos; Netzteil = Fonte de alimentação; Schaltung = Circuito.

Page 66: Elektor_342_2013

•Magazine

66 | Novembro 2013 | www.elektor-magazine.pt

pondente à frequência de áudio do instrumento parece estar funcional.O transformador de alta-tensão teve de ser rebobinado por duas vezes até conseguir ficar a funcionar no circuito. Uma empresa espe-cializada na Holanda rectificou todo o tubo de raios catódicos, dando-lhe um canhão de elec-trões e ecrã totalmente novos. A secção de frequência de áudio foi cuidadosamente verifi-cada e os componentes mais duvidosos foram substituídos.Foi necessário o reajuste de muitos filtros bem como algum trabalho intensivo (Figura 4).Aqui, os condensadores mostraram uma capa-cidade aumentada, provavelmente devido ao encolhimento do papel isolante durante um perí-odo de quase 70 anos. Dois bancos de conden-sadores de década e um gerador de varrimento controlado por computador permitiram que as curvas passa-banda pudessem ser configura-das novamente (Figura 5). Os rectificadores de cuprite (Cu2O, óxido de cobre) entre o filtro e os condensadores de armazenamento estavam todos completamente intactos.

Verificação eléctrica, investigação, restauraçãoAs primeiras tentativas cautelosas: o motor de accionamento para os dois conjuntos de 27 interruptores (Figura 3) estava preso; não havia alta-tensão (HT) para o tubo de raios catódicos de 18 cm (Braun’sche Röhre) com deflexão assimétrica. Infelizmente, este tubo tornou-se inutilizável devido a corrosão dos fios na base comprimida. Apenas a parte corres-

Figura 3. Motor de controlo e engrenagem de árvore de cames para comutação de 54 conjuntos de molas (foto original)

Figura 4. Resposta em frequência do filtro antes da restauração do equipamento. (gravação original)

Figura 5. Resposta em frequência do filtro depois de calibrado. (gravação original)

Page 67: Elektor_342_2013

XXL

exterior foi reconstruído pintando toda a caixa, componentes metálicos e refeita toda a inscrição em torno dos controlos (Figura 7).

Para conseguir operar o novo CRT numa caixa muito antiga as opções de configuração para as tensões auxiliares do tubo tiveram que ser revistas, resultando na prática numa nova pequena placa de circuito impresso com os res-pectivos potenciómetros montados, para ser instalada no interior do instrumento. De modo a evitar fazer alterações excessivas a uma peça de equipamento tão histórico, o método cor-recto de aplicar tensões simétricas ao CRT atra-vés de um circuito push-pull foi abandonado. A deformação trapezoidal e o astigmatismo d CRT revelaram-se toleráveis para deflexões não muito elevadas (Figura 6).

Trabalho mecânicoO motor fixado com novas buchas de apoio (de fabrico caseiro com um torno mecânico de preci-são), e todos os 54 conjuntos de molas ajustados usando um estroboscópio, apareceu um espec-tro pela primeira vez num osciloscópio externo.Depois da restauração das partes eléctricas, o

Figura 6. Imagem de um sinal de tensão sinusoidal distorcido. (gravação original)

Page 68: Elektor_342_2013

•Magazine

68 | Novembro 2013 | www.elektor-magazine.pt

De volta a casaO resultado de todo o trabalho de restauração decorreu durante muitos fins-de-semana, garan-tindo finalmente que uma peça monumental de tecnologia de medição electro- acústica estava novamente totalmente operacional. O instru-mento foi discutido pelo autor numa apresen-tação no Congresso para a Sociedade Acústica Alemã de 2007, e posteriormente consignado como empréstimo permanente gratuito à colec-ção histórica do fabricante original, na Siemens, em Munique.

Elektorizado em 1984As edições inglesas de Março, Abril e Maio de 1984 da revista Elektor continham uma série de 3 artigos que descreviam um Analisador em tempo-real, que pode ser considerado a versão de estado-sólido do dispositivo da Siemens produ-zido em 1935 descrito aqui, embora esse instru-mento não tenha conseguido obter uma menção em 1984. Tal como era moda nos velhos anos 80 o projecto da Elektor contém grandes quan-tidades de componentes discretos (que tal 250 resistências de precisão), meia dúzia de placas de circuito impresso densamente populadas mon-tadas numa placa base, uma fonte de alimen-tação robusta e uns surpreendentes 330 LEDs coloridos. Estava também incluído um gerador de ruído rosa.O protótipo de laboratório do analisador em tempo-real de 1984 acabou provavelmente num caixote de lixo durante a mudança para as novas instalações da Elektor House, em Limbricht, por volta de 2008. Tudo o que temos hoje em dia são os artigos originais. Nada para nos preocupar, 30 anos depois temos o Analisador de áudio 2010 ou outros idênticos que funcionam num portátil. Está apenas à distância de um download de 500 KB. Alguns de vocês têm microcontroladores ARM, DSPs e sistemas de altifalantes escondido para transformar o seu “velho” Opel Kadett A num Ferrari no que diz respeito ao barulho.O editor não foi capaz de resistir sem deixar a Figura 8 – a sua melhor tentativa de mos-trar como se parecia do instrumento de 1984. Por favor, os proprietários de um Analisador em tempo-real da Elektor de 1984 entrem em con-tacto comigo.

(130204)

Figura 7. Espectrómetro de frequência de áudio próximo do final do trabalho de restauro. A caixa foi removida para mostrar o banco de 27 secções de filtragem e o array de contactos do motor. As partes modernas coloridas foram necessárias para adaptar electronicamente o CRT retrabalhado ao circuito original. (foto original)

Figura 8. Protótipo do Analisador em tempo-real da Elektor, fotografado a partir de uma revista Elektor inglesa de Maio de 1984. (reprodução original)

Page 69: Elektor_342_2013

www.elektor-projects.com

Sharing Electronics Projects

Join or Create a Project at www.elektor-labs.com

Elektor.LABS is an online community for people passionate about electronics. Here you can share your projects and partici-pate in those created by others. It’s a place where you can discuss project development and electronics.

Elektor’s team of editors and engineers assist you to bring your projects to a good end. They can help you write an article to be published in Elektor.MAGAZINE or even develop a complete product that you can sell in Elektor.STORE!

Sharing Electronics Projects Sharing Electronics Projects

Join or Create a Project at www.elektor-labs.com

GETELEKTORIZED

elektor labs

Adv Elektor labs 121101 UK.indd 1 05-11-12 14:15

Page 70: Elektor_342_2013

• Curso

70 | Novembro 2013 | www.elektor-magazine.pt

No contexto desta estação meteorológica móvel, pretendíamos estudantes que fossem capazes de reunir dados de diferentes ambientes: na cidade, em parques, e ao longo das margens de um rio. Cada ambiente deve fornecer um conjunto de dados diferente para os alunos realizaram comparações.Decidimos usar balões amarrados para que os estudantes pudessem controlar o posicionamento e colectar os dados a altitudes mais elevadas. Isto também nos deu a oportunidade de incluir uma câmara temporizada para que pudessem visua-lizar e correlacionar os dados em cada ambiente diferente.

DecisõesReunimos todos os dispositivos electrónicos necessários à nossa recolha de dados – um sen-sor de temperatura/humidade, um microfone, uma câmara, e um sensor de CO2. Daquilo que sabíamos, não havia nenhum sensor para medir a velocidade do vento que correspondesse aos nossos requisitos. A maioria dos anemômetros existentes no mercado necessitam de uma super-

fície estável para conseguir obter correctamente as suas leituras, mas uma vez que o nosso sis-tema iria estar montado em balões, tivemos que engendrar um método diferente. Isso, e mais alguns outros problemas inesperados, complicou aquilo que pensávamos que seria um projecto relativamente simples.A fim de manter os custos reduzidos, decidimos usar um conjunto de pequenos balões em vez de um único grande balão meteorológico. Com-prámos um tanque de hélio e alguns balões para festas. Recorrendo a algumas pesquisas na Inter-net, concluímos que seriam necessários cerca de 5 balões para conseguir levantar o Arduino, e todo o sistema de medida por nós montado.Em seguida tínhamos que pensar no anemôme-tro. O nosso principal objectivo não era medir a velocidade do vento com precisão mas sim poder comparar as velocidades. Decidimos então efec-tuar apenas uma medição do número de rotações por segundo, pensámos em usar uma resistên-cia fotossensível (LDR) e um LED para criar um sensor. A ideia era colocar a LDR numa posição oposta a um LED com um disco de papel entre os

David Cuartielles, Clara Leivas, e Tien Pham (Arduino Verkstad)

Curso ArduínoParte 6: Estação meteorológica móvel

O grupo de trabalho Arduino foi encarregado de criar um conjunto de experiências educativas que visam introduzir os novos alunos à electrónica. O objectivo principal era que fossem acessíveis, mas ainda assim suficientemente desafiantes para despertar a curiosidade dos alunos. Esta estação meteorológica móvel faz parte deste conjunto de experiências, uma experiência interdisciplinar que combina ciências da natureza, física e tecnologia.

Page 71: Elektor_342_2013

Curso Arduíno

www.elektor-magazine.pt | Novembro 2013 | 71

dois. O disco teria um pequeno corte onde com o a sua rotação faria passar luz do LED para a LDR que accionaria depois um contador.

Problema resolvidoA nossa primeira tentativa passou por tentar colo-car o LED muito perto da LDR esperando que a quantidade e velocidade das leituras evitaria a necessidade de uma blindagem. Como se espe-rava, este não foi o caso, pelo que decidimos então arranjar uma caixa escura para montar o circuito electrónico.Isto representava uma outra série de proble-mas relacionados com a montagem mecânica do sistema, pelo que tentámos outro método que consiste em usar um sensor infravermelho (IV) e um disco de papel preto e branco. Este sistema parecia mais prometedor uma vez que apensa precisava de um único componente electrónico, o que significa menos espaço para erros mecânicos.Testámos tudo e conseguimos pôr o circuito a funcionar. O próximo passo era um pouco mais complicado, como conseguir que o vento fizesse rodar o nosso disco. Como o nosso objectivo era construir uma estação meteorológica leve, não poderíamos usar o seu peso para estabilizar o sistema de leitura da velocidade do vento, pelo que um anemômetro poderia girar sem ter um ponto fixo como referência.Assim, uma vez mais, para garantir que a monta-gem pode ser facilmente reproduzida em qualquer outro lugar por outros estudantes, decidimos ten-tar usar papel tipo cartolina. Fizemos uma sim-ples lâmina do tipo turbina com papel e fita (Fi- gura 1). Montámos tudo na horizontal de modo que girasse independentemente da direção do vento. De modo a manter os balões estáveis, agrupámos os balões nos quatro cantos, espe-rando que a estação meteorológica não girasse sobre ela própria.

Sopro do ventoA nossa maquete de papel mostrou que o sis-tema poderia funcionar. De qualquer modo, temos o sensor IV e disco de papel a funcionar o que nos satisfaz bastante. Tínhamos agora o tempo contra nós para testar o conceito, apenas tínhamos o sensor de temperatura/humidade, o sensor IV e a câmara.Primeiro testámos o sensor de temperatura/humidade e a câmara dentro de casa. Passe-ámos à volta dos edifícios da Universidade, enchendo os vários balões e ficámos muito con-

Figura 2. Aparentemente, cerca de 12 balões são suficientes para levantar a estação meteorológica móvel com Arduino, em vez dos 25 calculados inicialmente.

Figura 1. Modelo de turbina feita com papel e fita para usar no anemómetro. Esperamos!

Page 72: Elektor_342_2013

• Curso

72 | Novembro 2013 | www.elektor-magazine.pt

Os balões começaram a girar descontroladamente e a ficarem emaranhados. E não era só isso, o vento era tão forte que os balões e estação meteo- rológica quase que foi puxada horizontalmente, quase ao ponto de quebrar a corda.Foi só aqui que nos apercebemos do óbvio. O pro-jecto do anemômetro não iria funcionar porque os balões nunca estariam na vertical se ficassem emaranhados. Na melhor das hipóteses ficaria com uma pequena inclinação. Talvez tenha sido por causa do projecto tradicional dos balões meteo- rológicos flutuantes que não considerámos isto, mas com uma corda mudamos completamente toda a dinâmica.Derrotados com este projecto, tentámos várias outras variantes, uma das quais passou por mon-tar a turbina na vertical. O problema estava em conseguir alinhar o sistema com o vento pelo que tentámos adicionar uma cauda semelhante à dos cataventos. Isso simplesmente alterou a estabilidade do sistema em termos de peso tor-nando-o simplesmente imprevisível, uma vez que começava a oscilava ao vento.

Turbina bidirecionalFinalmente, decidimos desenhar e imprimir a 3D uma turbina que fosse capaz de girar em ambas as direções. Isto foi alcançado ao torcer a forma das lâminas ao longo do seu eixo de rotação. Como a escola com que estávamos a coope-rar possuía uma impressora 3D, podíamos pelo menos imprimir a turbina a um custo razoável. Seria um compromisso, mas não conseguíamos pensar em nada melhor num tempo razoável (e o tempo estava a pressionar-nos).A pessoa responsável pela mecânica (que sou eu, David) não tinha muita experiência com impres-sões a 3D – na verdade, esta seria a primeira vez. Depois de algumas tentativas, consegui imprimir um protótipo muito básico mas funcional.Testámos novamente o nosso sistema de medi-ção da velocidade do vento e ficámos contentes ao descobrir que o anemômetro funcionava em quase todos os ângulos. Nesta altura, decidimos ainda cortar a laser uma moldura MDF (contra-placado) de modo que o sistema pudesse ser montado correctamente. Isto ajuda a que os sensores, especialmente o sensor IV, funcio-nem bem. (Em termos de custos, é relativa-mente barato para nós usar o dispositivo de corte a laser comum para produzir kits leves. Uma vez mais, um compromisso, mas ainda assim acessível.)

tentes quando nos apercebemos que não preci-sávamos de tantos balões (Figura 2). Fizemos a nossa primeira festa enquanto carregávamos os resultados num cartão SD. Agora era altura de testar o anemômetro improvisado.Escolhemos o porto em Malmö, Suécia, que é bastante ventoso esperando que o anemómetro fornecesse bons resultados. Fomos então com os nossos balões para o porto. Assim que abrimos as portas da carrinha os balões foram imedia-tamente puxados para fora esticando a corda.

Figura 3. Inicialmente ficámos impressionados com o papagaio Rokkaku.

Figura 4. Diagrama de ligações para os alunos do secundário trabalharem ao nível das ligações de fios.

Page 73: Elektor_342_2013

Curso Arduíno

www.elektor-magazine.pt | Novembro 2013 | 73

ímos uma maquete com folhas de plástico e paus de bambu, que conseguimos pôr a voar (Figu- ra 3). Ficámos muito contentes com o resultado, sendo, ainda por cima, o primeiro papagaio que qualquer um de nós já tinha construído.Preparámo-nos para realizar um teste, quando foi então decidido que todos esses elementos seriam um pouco imprevisíveis para os nossos objectivos. Precisávamos de algo um pouco mais à prova de falhas e por isso comprometemos uma vez mais ao decidir pendurar a estação meteo-rológica móvel numa longa vara com um gan-cho curvo. Este facto acabou por ser uma boa e interessante decisão, porque me pareceu ser um pouco mais interactivo. Os estudantes podiam direcionar a estação meteorológica para as árvo-res para ver se vegetação afecta as leituras, ou passa-lo sobre uma ponte directamente acima do nível da água.Já satisfeitos, voltámos ao trabalho com a elec-trónica. Adicionámos o sensor de som que fun-cionou perfeitamente. O sensor de CO2 foi outra questão. Enquanto funcionou, houve algumas complicações. Precisa de algum tempo para aque-cer e exige bastante trabalho ao nível do código fonte, e devido a isso torna-se difícil de explicar aos participantes menos experientes o funciona-mento do sensor. A Figura 4 dá uma ideia de como tudo se liga ao Arduino.Embora não estejamos 100% satisfeitos com a forma como a experiência acabou por correr, esta-mos bastante satisfeitos com a curva de aprendi-zagem. Errámos e falhámos muitas vezes, mas, eventualmente, chegámos onde queríamos. Por vezes, podemos ter sucesso nos fracassos.

A nossa felicidade foi de curta duração, terminando assim que fomos testar novamente o sistema na rua (sem os balões, apenas ao ar livre). De alguma forma, os sensores IV estavam a receber muita interferência. A única solução que encontrámos foi pintar com tinta preta o invólucro de plástico. Eventualmente, teremos que imprimir a caixa utilizando apenas plástico preto uma vez que outras cores permitem a entrada de interferências. O sensor IV mostrou ser tão temperamental como a LDR. Mover o sensor poucos milímetros para mais perto ou mais longe do disco impede que o sensor realize a leitura de valores correctamente. Na verdade, parecia que o sensor IV que estáva-mos a utilizar tinha uma pequena faixa de tole-rância para funcionar correctamente, mas final-mente conseguimos fazer com que funcionasse.

Adeus balõesDescobrimos que as impressoras 3D, embora sendo excelente para realizar protótipos, não são necessariamente os sistemas mais preci-sos (talvez seja simplesmente uma questão de experiência). Pequenos pontos de fricção, onde a impressão não foi tão precisa significava que agora precisamos de mais vento, aumentando assim o limite de velocidade do vento. Outro compromisso, mas que mais uma vez decidimos enveredar pelo mesmo.Pensávamos que estávamos próximos da linha de chegada, mas depois lembramo-nos da ques-tão dos balões. Foi assim que surgiu a ideia de um papagaio surgiu e achámos que seria melhor testar a ideia. Assim, começámos a pesquisar papagaios.A nossa primeira incursão no mundo dos papa-gaios um papagaio em forma de caixa. Alguém mencionou uma anedota sobre um papagaio em forma de caixa capaz de gerar força suficiente para levantar um ser humano, pelo que decidimos que seria o nosso primeiro modelo. Depois de construir um papagaio pouco aprimorado usando pinos e sacos do lixo, conseguimos fazê-lo voar... pelo menos, durante cerca de dez segundos antes de cair estatelado no chão. Adicionar asas como estabilizadores ajudou, mas a área onde está-vamos tinha ventos imprevisíveis e o papagaio voltou a cair – horas de trabalho reduzidas a escombros em segundos.Eventualmente, acabámos por nos deparar com um projecto de papagaio com o nome de Rokkaku – um papagaio de seis lados originário do Japão, que se dizia ser o mais estável ao vento. Constru-

Figura 5. Montagem final da estação meteorológica. Os níveis de temperatura, humidade, altitude e CO2 são medidos, processados pelo Arduino e armazenados num cartão SD. O sistema tira ainda fotos de cima. Repare na impressão 3D da turbina incorporada na placa de circuito impresso.

Page 74: Elektor_342_2013

• Curso

74 | Novembro 2013 | www.elektor-magazine.pt

foram capturados a um ritmo constante, junta-mente com uma imagem do local visto de cima. Os participantes retornaram depois ao laboratório para usar a aplicação de software designada por Processing, mapearam as informações meteoro-lógicas com as imagens e criaram uma pequena apresentação para os outros grupos onde expli-caram o que aprenderam sobre os diferentes locais. O sketch desenvolvido

em Processing para este projecto está também disponível na Internet [1].

Lição aprendidaEnquanto escrevíamos este artigo efectuá-mos várias experiências com crianças durante três dias. Estas serão realizadas num total de 15 vezes ao longo das próximas três semanas, onde cerca de 150 crianças vão experimentar a estação meteorológica.Uma coisa que reparámos é que existem dema-siados cabos no projecto. Para uma continuação bem-sucedida deste projecto ou mesmo para a expansão para mais locais, o actual projecto pre-cisa de ter os componentes soldados numa placa. Além disso, a câmara que usámos para tirar as fotos é tão fraca quanto se poderia esperar pelo preço que pagámos. Tivemos que voltar a sol-dar os fios que ligavam aos botões várias vezes.

História ilustradaO conjunto dos desenhos tecnológicos apresenta-dos aos estudantes para ajudar na montagem da Estação meteorológica móvel Arduino estão dispo-níveis gratuitamente no site da Elektor na Internet [1]. Um conjunto de desenhos ilustra a ligação da parte electrónica externa à placa principal do Arduino (BalloonExperiment-xx.png), os outros, a montagem da unidade completa, incluindo o mastro onde a mesma se encontra pendurada (MDF_WeatherStation_Instructions-xx.png).

(130043)

[1] Sketch software Processing para Arduino (ficheiro .zip); esquemas eléctricos e de montagem (ficheiro .zip): www.elektor.com.pt/130043

A Estação meteorológica móvel completa pode ser visualizada na Figura 5. Mais desenhos com a parte electrónica estão disponíveis gratuita-mente para download na Internet [1].

TesteTestámos a estação meteorológica pendurada em balões, bem como com um papagaio. Ambas as tentativas de obter resultados significativos não resultaram bem. Por isso, decidiu-se pendurar a estação numa longa vara com uma extensão (Figura 6).A primeira vez que esta estação meteorológica foi posta em prática foi no campo tecnológico “Etopia Kids” em Zaragoza (Espanha), que teve lugar em Junho e Julho de 2013. Durante este evento, as crianças foram expostas a diferentes experiências tecnológicas interactivas durante um período de 5 dias. Aprenderam a contar em binário, como programar placas Arduino, colo-car robôs a mexerem-se, e como ler os dados ambientais e apresentá-los num display.As crianças primeiro montaram a estação e depois foram fazer uma caminhada para cap-turar dados em locais diferentes. Temperatura, humidade, nível sonoro e velocidade do vento

Grupo de trabalho ArduinoO grupo de trabalho Arduino (Suécia) é uma equipa for-mada recentemente – cada um com a sua especializa-ção numa área diferente, algumas das quais se podem sobrepor um pouco. Nem todos estiveram directamente envolvidos no processo, mas quase todos puderam con-tribuir com algum conselho ou dica para os projectistas mais empenhados neste projecto, Tien e Clara.

Figura 6. Depois de algumas tentativas frustradas com balões e papagaios, foi decidido pendurar a estação meteorológica Arduino num mastro comprido. Aqui fica o que os professores tinham em mente… e o exemplo de como um dos alunos o contruiu. As partes da turbina foram produzidas em diferentes cores.

Page 75: Elektor_342_2013
Page 76: Elektor_342_2013

1

2

1

3

2

4

3

4

•Loja ELEKTOR

76 | Novembro 2013 | www.elektor-magazine.pt

Com Ajuda da ArduinoDominar os Microcontroladores

Acessíveis e fáceis de usar, a programação de mi-crocontroladores com base nas placas Arduino está a tornar-se cada vez mais popular entre profissionais, estudantes e entusiastas. No livro “Mastering Micro-controllers”, o nosso colega dos laboratórios Elektor, Clemens Valens, guia-nos através das técnicas bá-sicas de programação para qualquer microcon-trolador; entradas e saídas (analógicas e digitais), interrupções, barramentos de comunicação (RS-232, SPI, I²C, 1-wire, SMBus, etc.), temporizadores e mui-to mais. Não interessa se começámos agora a pro-gramar microcontroladores ou a usar placas Arduino pela primeira vez; este livro fornece-nos uma sólida base sobre a qual podemos progredir e continuar a desenvolver as nossas experiências, ao mesmo tem-po oferecendo desafios à altura de qualquer progra-mador veterano. Mesmo quando já chegámos ao fim deste guia, o livro permanece sempre como uma re-ferência para resolvermos dúvidas de programação de distintas complexidades.348 páginas • ISBN 978-1-907920-23-3£34.95 • € 39.95 • US $56.40

Aprender a voar com EagleEAGLE V6 Getting Started Guide

Este é um livro orientado para qualquer pessoa que procura uma introdução às capacidades do softwa-re EAGLE PCB da CadSoft. O livro dá-nos uma visão rápida dos principais módulo do EAGLE: editor de es-quemáticos; editor de layout e autorouter num úni-co interface. Através desta obra poderemos aplicar os nossos conhecimentos de comandos EAGLE para concretizar pequenos projectos e aprender sobre alguns dos conceitos mais avançados, assim como entender as capacidades do EAGLE e perceber todos os estágios até à produção de placas de circuito im-presso. Depois de ler este livro e de praticar com os exemplos, completando os projectos, qualquer pes-soa se poderá sentir confiante para enfrentar pro-jectos mais sérios.208 pages • ISBN 978-1-907920-20-2£29.50 • € 34.50 • US $47.60

O luxo da precisão ao alcance de todosMedidor LCR 500 ppm

A notável precisão deste dispositivo e a sua surpre-endente facilidade de utilização são o resultado de um desenho cuidado. Trabalha tão bem através deste painel simplificado que quase nos esquecemos das

subtilezas das técnicas de medição empregues. Uma oportunidade de sonho para os nossos leitores que têm a paixão da medição. Para quem se maravilha com as modernas técnicas hoje em dia ao nosso al-cance e para poder sentir a mais pequena fracção de um volt, esta é uma ferramenta a não perder!Conjunto: placa principal e placa LCD, montados e testadosArt.# 110758-93Ver www.elektor.com.pt/lcrmeter

Mostrador, teclas, relógio em tempo real e maisPlaca de Extensão Elektor Linux

Esta placa de extensão foi desenvolvida para impul-sionar ainda mais a nossa série de artigos Embed-ded Linux e a placa GNUblin correspondente. Inclui um mostrador, teclas, um relógio em tempo real e 16 GPIOs. Os especialistas em Linux vão apreciar bas-tante todas as possibilidades. Esta placa de exten-são Linux inclui tudo o que é necessário para obter a interface de utilizador numa enorme variedade de projectos!Módulo, Placa SMD montada e testada, incl. LCD1, X1, K1-K4, BZ1 e BT1Art.# 120596-91 £31.10 • € 34.95 • US $50.20

Esteja atento às nossa promoções semanais de Descontos + Portes GRÁTIS

para os Membros Elektor! Visite a nossa a loja online em: www.elektor.com.pt/loja

Page 77: Elektor_342_2013

6

8

7

7

5

8

5

6

Livros, CD-ROMs, DVDs, Kits & Módulos

www.elektor-magazine.pt | Novembro 2013 | 77

Dominar FPGA!Placa de desenvolvimento FPGA

Os dispositivos FPGA estão inquestionavelmente en-tre os mais versáteis mas mais complexos compo-nentes na electrónica moderna. Um FPGA contém um labirinto de portas e outros elementos de circuito que podem ser usados para criarmos o nosso próprio circuito digital, tudo integrado num chip. Esta pla-ca de desenvolvimento FPGA (desenhada nos Elektor Labs) mostra-nos como é fácil para qualquer entu-siasta da electrónica, seja profissional ou não, tra-balhar com estes dispositivos de lógica programável.Módulo, montado e testado Art.# 120099-91 Ver www.elektor.com.pt/fpgaboard

Programação de aplicações Android passo-a-passo

Android AppsEste livro é uma introdução à programação de aplicações para dispositivos Android. O funcionamento do sistema Android é explicado passo-a-passo, com o objectivo de mostrar como podemos programar as nossas próprias aplicações. Começa com uma introdução ao sistema operativo Android e explica como criar um sistema de desenvolvimento de aplicações compatíveis. Continua com os fundamentos da linguagem de programação e

permite aprender a utilizar periféricos integrados, como o GPS e outros sensores. Uma vez realizados todos os exercícios propostos, conseguimos criar simples apli-cações web e comunicar com bases de dados. Além de explicar como escrever aplicações em linguagem de pro-gramação Java, este livro também ensina a utilizar Ja-vascripts ou scripts PHP para programar as nossas apps.Quando se trata de personalizar o seu smartpho-ne não nos devemos sentir limitados às aplicações existentes. Podemos criar as nossas próprias aplica-ções, porque a programação de dispositivos Android é mais simples do que se pensa!244 páginas • ISBN 978-1-907920-15-8 £34.95 • € 39.95 • US $56.40

80 histórias sobre a electrónica de outroraRetronics

Foi por mero acaso que uma história de uma página sobre um velhinho testador de válvulas da Heathkit, publicado em Dezembro de 2004 na revista Elektor nos levou a redescobrir dezenas de artigos “retrónicos” que foram sendo recuperados e têm atraído um interesse fora do comum com muitas mensagens de leitores e contribuições para essa série a chegarem à redacção da revista. Este livro é uma compilação de cerca de 80 artigos da secção Retronics, publicados entre 2004 e 2012. Histórias que permitem redescobrir equipa-

mentos de teste antigos, computadores pré-históricos, componentes há muito esquecidos e alguns dos pro-jectos de maior sucesso da Elektor, todos revisitados com o objectivo de deixar qualquer técnico de electró-nica a sorrir, ao mesmo tempo que nos conquista um sentimento de nostalgia enquanto nos recostamos a admirar estas jóias de outras eras, as quais são sufi-cientes para deixar muita gente com vontade de re-cuperar muitas destas glórias do passado.193 páginas • ISBN 978-1-907920-18-9 £24.80 • € 29.95 • US $40.00

Sem fios e sem teclasAndroid Elektorcardiograma

Educativo, fascinante e potencialmente útil para qual-quer pessoa, com este conjunto podemos realizar os nossos próprios electrocardiogramas no nosso smar-tphone ou tablet Android! O projecto combina um pequeno interface PIC para controlar um estágio de entrada analógico e muito software. O nosso interface ECG está disponível num formato de módulo pronto a usar ao qual basta acrescentar quatro eléctrodos e a aplicação para Android que corre num smartphone ou tablet. Não existe ligação física entre este terminal e o interface uma vez que se usa comunicação Bluetooth! Placa já montada • Art.# 120107-91Ver www.elektor.com.pt/elektorcardioscope

Page 78: Elektor_342_2013

11

12

10

10

11

12

9

9

•Loja ELEKTOR

78 | Novembro 2013 | www.elektor-magazine.pt

10 licções cativantesPIC Microcontroller Programming

Este livro mostra como programar microcontroladores PIC utilizando a linguagem de programação JAL, gra-tuita e fácil de utilizar. Esta linguagem, extremamente potente, goza de grande popularidade no mundo do modelismo e integra um ambiente de desenvolvimento integrado (IDE), também ele gratuito. Depois de termi-nar todos os exercícios vamos ser capazes de codificar os nossos próprios programas e interpretar software de outras pessoas. Aprendemos ainda os comandos de JAL, fazendo piscar um LED, desenhando um interrup-tor, medindo a posição de um potenciómetro, a gerar sons ou a controlar a luminosidade de um LED. E, por isso, também vamos ser capazes de saber detectar e corrigir erros nos nossos programas. 284 páginas • ISBN 978-1-907920-17-2£29.50 • € 34.50 • US $47.60

Um livro completo sobre RFIDRFID - MIFARE and Contactless Cards in Application

MIFARE é a tecnologia RFID mais usada em todo o mundo e este livro fornece uma introdução prática e completa a estas aplicações. Entre outras coisas, os primeiros capítulos descrevem os componentes físicos fundamentais da tecnologia, os padrões relevantes, o desenho das antenas RFID, considerações de segu-rança e encriptação. É também descrito em detalhe como desenhar o hardware e o software que são ne-cessários a um leitor RFID, incluindo o firmware e todo o software associado de suporte a programação usando qualquer linguagem .NET. Para o desenvolvi-

mento de aplicações, a obra recorre a exemplos que usam o programa “Smart Card Magic.NET” em PC, um ambiente simples que suporta o envio de comandos para um cartão através um simples clique de rato, assim como a possibilidade de se criarem scripts C#. Em alternativa é possível seguir alguns dos muitos exemplos fornecidos usando o Visual Studio 2010 Ex-press Edition. Finalmente, a obra descreve as API mais comuns para leitores de smart cards, focando-se na programação destes cartões usando leitores PC/SC standard e as linguagens C/C++, Java e C#.484 páginas • ISBN 978-1-907920-14-1£44.90 • €49.90 • US $72.50

Dominar a tecnologia SMDLabWorX 2 - Mastering Surface Mount Technology

Este livro é um curso intensivo sobre as técnicas, di-cas e todo o conhecimento necessário para aplicar a tecnologia de montagem em superfície (SMD) em qualquer processo de trabalho. Mesmo para projec-tos de electrónica com restrições de custos, é pos-sível planear um projecto avançado em SMD. Para além de explicar a metodologia e o equipamento, a obra dá atenção aos componentes, tecnologias e mé-todos de soldadura. Muitas dicas práticas e truques sobre SMD tornam este livro numa obra fundamen-tal e ao alcance de todos. Está também disponível

um completo kit de partes com componentes SMD, placas de circuito e esquemáticos para quem quiser replicar os três projectos descritos neste livro.282 páginas • ISBN 978-1-907920-12-7 £29.50 • € 34.50 • US $47.60

Leitura ideal para estudantes e técnicos de electrónica

Processamento Digital de Sinais (DSP) usando Microprocessadores

Este livro é um guia prático e acessível sobre aplica-ções DSP. Apresentando um mínimo de matemática e suportado por exemplos funcionais e construtivos, com programas para microcontroladores testados e aprovados, o autor Dogan Ibrahim consegue cati-var os leitores explicando tudo o que é preciso para desenhar e implementar algoritmos DSP usando os populares microcontroladores PIC. Um livro perfeito para estudantes que estão à procura de bases te-óricas para criar projectos de final de curso. Para pós-graduações, esta obra fornece exemplos sobre projectos DSP avançados e, efectivamente, qualquer pessoa que trabalhe ou queira saber mais sobre sis-temas baseados em DSP deverá encontrar aqui boas razões para ter o livro sempre à mão!428 páginas • ISBN 978-1-907920-21-9£44.90 • € 49.90 • US $72.50

Para mais informações e Encomendas: www.elektor.com.pt/loja Qualquer dúvida ou questão relativamente a encomendas enviar um email para: [email protected] as encomendas são processadas porElektor International Media bvPO Box 11, NL-6114 ZG Susteren, the Netherlands

The Elektor House, Allee 1, Limbricht, the NetherlandsTel +31 46 4389444 | Fax +31 46 4370161

Page 79: Elektor_342_2013

OsciloscópiosA NOVA SÉRIE HMO 3000300 MHz | 400 MHz | 500 MHz

ROHDE & SCHWARZ Portugal | Tel. 21 415 57 00 | [email protected]

A nova série de HMO3000 da HAMEG Instruments oferece um excelente desempenho a um preço atractivo.

A funcionalidade MSO permite analisar todos os canais analógi-cos, mais um adicional de 16 canais digitais.

Os seis modelos diferentes estão disponíveis numa largura de banda de 300 MHz a 500 MHz com 2 ou 4 canais.

NOVO!! SÉRIE HMO3000

Largura de banda até 500 MHZ

a qualquer horaTempo real 4 GSa /s, Conversor A/D Flash Baixo Ruído

Memória 8 MPts, Zoom até 200,000:1

MSO: Opção Sinal Misto HO3508 [HO3516]com Canais Lógicos 8 [16]

Sensibilidade Vertical 1 mV/div., Controlo Offset ±0.2…±20 V

Page 80: Elektor_342_2013

O nome e logo Microchip e PIC são marcas registadas da Microchip Technology Incorporated nos E.U.A. e outros países. mTouch, PICDEM e PICkit são marcas da Microchip Technology Incorporated nos E.U.A. e outros países. Todas as restantes marcas mencionadas neste documento são propriedade dos respectivos donos. ©2013 Microchip Technology Inc. Todos os Direitos Reservados. DS30010039A. ME1072Por08.13

Para informação adicional, visite o site da Microchip emwww.microchip.com/get/eupic16f753

Melhore o desempenho e a efi ciência dos seus projectos, ao mesmo tempo reduzindo os custos, com as capacidades analógicas expandidas do microcontrolador PIC16F753. Com o seu Op Amp integrado, compensação de declive e uma gama completa de periféricos independentes do núcleo, o PIC16F753 garante conversão efi ciente da alimentação e oferece uma plataforma versátil para se acrescentar sensores inteligentes e gestão de corrente em projectos de sistemas embebidos.

O microcontrolador PIC16F753 a 8-bit da Microchip oferece todas as funcionalidades do PIC12F752 e acrescenta um Op Amp com 3 MHz de produto ganho-largura de banda, para além de compensação de declive para fontes de alimentação comutadas.

Formas de onda complementares não-sobrepostas para alimentar entradas de periféricos como comparadores e PWM são garantidas pelo gerador de saída complementar integrado no chip, com controlo de banda morta, controlo de fase e controlo de intervalos, assim como desligar e reinicialização automáticas. Os 8 canais de ADC a 10-bit integrados no chip podem ser usados para acrescentar capacidades de sensores, incluindo interfaces tácteis de tipo capacitivo, enquanto duas saídas de 50 mA suportam a alimentação directa de FETs. Igualmente integrados estão comparadores de alta performance, um DAC a 9-bit e um módulo PWM de captura comparação.

Para projectos de tensão mais elevada sensíveis aos custos, o PIC16HV753 integra um regulador série (shunt) para operação desde 2V até um nível máximo de tensão defi nido pelo utilizador, com uma corrente em modo operacional inferior a 2 mA.

O seu projecto precisa de inteligência analógica num microcontrolador 8-bit? O sistema PIC16F753 suporta sensores inteligentes mais conversão e gestão efi ciente de corrente

PICDEM™ Lab Development Kit(DM163045)

COMECE JÁ A TRABALHAR NOS SEUS PROJECTOS■ Teste o projecto de referência grátis para uma lanterna baseada em LED■ Escolha entre as seguintes ferramentas de desenvolvimento de baixo-custo: - Kit de Desenvolvimento PICDEM™ Lab - PICkit™ 3 - Placa de Demonstração PICkit Low-Pin Count