<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5099989289846806992</id><updated>2012-02-09T14:12:32.017-02:00</updated><category term='blá blá blá'/><category term='linguagem #C'/><category term='Projetos e Circuitos'/><category term='Teoria'/><title type='text'>Arduino Brasil</title><subtitle type='html'>Blog de um iniciante na plataforma arduino;
"Pois todo aquele que pede, recebe; aquele que procura, acha; e ao que bater, se lhe abrirá todas as portas"</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>69</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-4861216444370479322</id><published>2010-04-16T19:56:00.000-03:00</published><updated>2010-04-16T19:56:05.763-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Capacímetro com Arduino</title><content type='html'>&lt;span class="Apple-style-span" style="color: #555555; font-family: Verdana, Geneva, Arial, sans-serif; font-size: 10px; line-height: 15px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;img alt="" src="http://arduino.cc/en/uploads/Tutorial/RCSchem.png" title="" width="240" /&gt;&lt;/div&gt;&lt;div class="vspace"&gt;&lt;/div&gt;&lt;h3 style="color: #555555; font-family: Georgia, Times, serif;"&gt;Introdução&lt;/h3&gt;Um resistor carrega 63,2% de um capacitor em 'TC' segundos, sendo&lt;br /&gt;&lt;div class="vspace"&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;strong&gt;TC&lt;/strong&gt;&amp;nbsp;=&amp;nbsp;&lt;strong&gt;R&lt;/strong&gt;&amp;nbsp;x&amp;nbsp;&lt;strong&gt;C&lt;/strong&gt;&lt;/div&gt;&lt;div class="vspace"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;TC&lt;/strong&gt;: chamada de&amp;nbsp;&lt;em&gt;constante de tempo&lt;/em&gt;&amp;nbsp;e dada em segundos;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;R&lt;/strong&gt;: resistência elétrica, dada em&amp;nbsp;&lt;em&gt;ohms&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;C&lt;/strong&gt;: capacitância, dada em&amp;nbsp;&lt;em&gt;farads&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="vspace"&gt;&lt;/div&gt;Isto é, a tensão elétrica no capacitor após&amp;nbsp;&lt;strong&gt;TC&lt;/strong&gt;&amp;nbsp;segundos de carga é igual à 63,2% da tensão elétrica de carga.&lt;br /&gt;&lt;div class="vspace"&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt="" src="http://arduino.cc/en/uploads/Tutorial/RCTimeConstant.gif" title="" width="480" /&gt;&lt;/div&gt;&lt;div class="vspace"&gt;&lt;/div&gt;Na prática, pode-se considerar que o capacitor carrega-se totalmente após cinco constantes de tempo.&lt;br /&gt;&lt;div class="vspace"&gt;&lt;/div&gt;&lt;h3 style="color: #555555; font-family: Georgia, Times, serif;"&gt;Experimento&lt;/h3&gt;O esboço abaixo funciona porque os pinos do Arduino podem estar em um dos dois estados abaixo, que são eletricamente bem diferentes:&lt;br /&gt;&lt;div class="vspace"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Estado de&amp;nbsp;&lt;strong&gt;entrada&lt;/strong&gt;&lt;br /&gt;&lt;dl&gt;&lt;dd&gt;&lt;div class="indent"&gt;Alta impedância: demanda pouca energia do circuito a ser&amp;nbsp;&lt;em&gt;lido&lt;/em&gt;&lt;div class="vspace"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="indent"&gt;Bom para ler sensores, mas não para acender&amp;nbsp;&lt;span class="wikiword"&gt;LEDs&lt;/span&gt;&lt;/div&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;div class="vspace"&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Estado de&amp;nbsp;&lt;strong&gt;saída&lt;/strong&gt;&lt;br /&gt;&lt;dl&gt;&lt;dd&gt;&lt;div class="indent"&gt;Baixa impedância: pode ser fonte de até 40 mA (polaridade positiva) ou drenar 40 mA (polaridade negativa)&lt;div class="vspace"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="indent"&gt;Bom para acender&amp;nbsp;&lt;span class="wikiword"&gt;LEDs&lt;/span&gt;&amp;nbsp;e alimentar outros circuitos, mas não para ler sensores&lt;/div&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="vspace"&gt;&lt;/div&gt;Além disso, os pinos podem estar em HIGH para carregar o capacitor e LOW para descarregá-lo.&lt;br /&gt;&lt;div class="vspace"&gt;&lt;/div&gt;&lt;div&gt;&lt;img alt="" src="http://arduino.cc/en/uploads/Tutorial/CapacitanceMeterSchem.png" title="" width="240" /&gt;&lt;/div&gt;&lt;div class="vspace"&gt;&lt;/div&gt;&lt;h3 style="color: #555555; font-family: Georgia, Times, serif;"&gt;Algoritmo do esboço do capacímetro&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Ajustar pino de descarga como entrada (de forma que ele não pode descarregá-lo)&lt;/li&gt;&lt;li&gt;Registrar o horário inicial com millis()&lt;/li&gt;&lt;li&gt;Ajustar o pino de carga para HIGH&lt;/li&gt;&lt;li&gt;Averiguar continuamente a tensão no capacitor para saber se já chegou aos 63,2%&lt;/li&gt;&lt;li&gt;Ao carregar o capacitor, subtrair o horário atual do horário inicial para saber o tempo de carga&lt;/li&gt;&lt;li&gt;Dividir o tempo em segundos pela resistência em ohms e, assim, obter o valor da capacitância&lt;/li&gt;&lt;li&gt;Descarregar o capacitor. Para isso:&lt;ul&gt;&lt;li&gt;Ajustar o pino de carga como entrada&lt;/li&gt;&lt;li&gt;Ajustar o pino de descarga como saída e lá pôr LOW&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Ler a tensão elétrica para certificar-se de que o capacitor está vazio&lt;/li&gt;&lt;li&gt;Meia-volta ao início do algoritmo&lt;/li&gt;&lt;/ul&gt;&lt;div class="vspace"&gt;&lt;/div&gt;&lt;h3 style="color: #555555; font-family: Georgia, Times, serif;"&gt;Código&lt;/h3&gt;&lt;pre&gt;&lt;blockquote&gt;/*  Capacímetro_RC&lt;/blockquote&gt;&lt;blockquote&gt; *  Paul Badger 2008&lt;/blockquote&gt;&lt;blockquote&gt; *  Demonstra uso da constante de tempo RC como meio de medir o valor do capacitor &lt;/blockquote&gt;&lt;blockquote&gt; *&lt;/blockquote&gt;&lt;blockquote&gt; * Theory&lt;/blockquote&gt;&lt;blockquote&gt; *  Um capacitor carregar-se-á, via um resistor, em uma &lt;/blockquote&gt;&lt;blockquote&gt; *  constante de tempo, definida como TC segundos onde&lt;/blockquote&gt;&lt;blockquote&gt; *    TC = R * C&lt;/blockquote&gt;&lt;blockquote&gt; * &lt;/blockquote&gt;&lt;blockquote&gt; *    TC = constante de tempo expressa em segundos&lt;/blockquote&gt;&lt;blockquote&gt; *    R = resistência em ohms&lt;/blockquote&gt;&lt;blockquote&gt; *    C = capacitância em farads (1 microfarad (ufd) = .0000001 farad = 10^-6 farads ) &lt;/blockquote&gt;&lt;blockquote&gt; *&lt;/blockquote&gt;&lt;blockquote&gt; *  A tensão no capacitor em uma constante de tempo&lt;/blockquote&gt;&lt;blockquote&gt; *  é definida como 63.2% da tensão de carga.&lt;/blockquote&gt;&lt;blockquote&gt; *&lt;/blockquote&gt;&lt;blockquote&gt; * Montagem do hardware&lt;/blockquote&gt;&lt;blockquote&gt; *  O capacitor a testar fica entre o ponto comum e o terra&lt;/blockquote&gt;&lt;blockquote&gt; *  (não se esqueça: ligue o + do capacitor ao ponto comum)&lt;/blockquote&gt;&lt;blockquote&gt; *  O resistor a testar fica entre o pino de carga&lt;/blockquote&gt;&lt;blockquote&gt; *  (chargePin) e o ponto comum&lt;/blockquote&gt;&lt;blockquote&gt; *  Um resistor de 220 ohms entre o pino de descarga&lt;/blockquote&gt;&lt;blockquote&gt; *  (dischargePin) e o ponto comum&lt;/blockquote&gt;&lt;blockquote&gt; *  Um fio entre o ponto comum e o pino analógico &lt;/blockquote&gt;&lt;blockquote&gt; *  (analogPin, entrada A/D)&lt;/blockquote&gt;&lt;blockquote&gt; */&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;#define analogPin      0          // pino analógico a medir tensão no capacitor&lt;/blockquote&gt;&lt;blockquote&gt;#define chargePin      13         // pino a carregar o capacitor&lt;/blockquote&gt;&lt;blockquote&gt;#define dischargePin   11         // pino a descarregar o capacitor&lt;/blockquote&gt;&lt;blockquote&gt;#define resistorValue  10000.0F   // mude esse valor para o valor do seu resistor&lt;/blockquote&gt;&lt;blockquote&gt;                                  // o "F" informa o compilador que trata-se de um ponto flutuante&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;unsigned long startTime;&lt;/blockquote&gt;&lt;blockquote&gt;unsigned long elapsedTime;&lt;/blockquote&gt;&lt;blockquote&gt;float microFarads;                // variável ponto flutuante para efetuar os cálculos&lt;/blockquote&gt;&lt;blockquote&gt;float nanoFarads;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;void setup(){&lt;/blockquote&gt;&lt;blockquote&gt;  pinMode(chargePin, OUTPUT);     // ajuste chargePin como saída&lt;/blockquote&gt;&lt;blockquote&gt;  digitalWrite(chargePin, LOW);  &lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;  Serial.begin(9600);             // inicializa a comunicação serial para fins de depuração de erros&lt;/blockquote&gt;&lt;blockquote&gt;}&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;void loop(){&lt;/blockquote&gt;&lt;blockquote&gt;  digitalWrite(chargePin, HIGH);  // ponha HIGH em chargePin&lt;/blockquote&gt;&lt;blockquote&gt;  startTime = millis();&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;  while(analogRead(analogPin) &amp;lt; 648){       // 647 = 63.2% de 1023, que corresponde ao fim de escala&lt;/blockquote&gt;&lt;blockquote&gt;  }&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;  elapsedTime= millis() - startTime;&lt;/blockquote&gt;&lt;blockquote&gt; // converta milissegundos a segundos ( 10^-3 ) e farads a microfarads ( 10^6 ), líquidos 10^3 (1000)  &lt;/blockquote&gt;&lt;blockquote&gt;  microFarads = ((float)elapsedTime / resistorValue) * 1000;   &lt;/blockquote&gt;&lt;blockquote&gt;  Serial.print(elapsedTime);       // imprima à saída serial&lt;/blockquote&gt;&lt;blockquote&gt;  Serial.println(" mS    ");       // imprima unidade e retorno de carro&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;  if (microFarads &amp;gt; 1){&lt;/blockquote&gt;&lt;blockquote&gt;    Serial.print((long)microFarads);  // imprima à saída serial&lt;/blockquote&gt;&lt;blockquote&gt;    Serial.println(" microFarads");   // imprima unidade e retorno de carro&lt;/blockquote&gt;&lt;blockquote&gt;  }&lt;/blockquote&gt;&lt;blockquote&gt;  else&lt;/blockquote&gt;&lt;blockquote&gt;  {&lt;/blockquote&gt;&lt;blockquote&gt;    // se o valor for menor que um microfarad, converta&lt;/blockquote&gt;&lt;blockquote&gt;    // a nanofarads (10^-9 farad). &lt;/blockquote&gt;&lt;blockquote&gt;    // trata-se de um artifício para que Serial.print imprima pontos flutuantes&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;    nanoFarads = microFarads * 1000.0;      // multiplique por 1000 para converter a nanofarads (10^-9 farads)&lt;/blockquote&gt;&lt;blockquote&gt;    Serial.print((long)nanoFarads);         // imprima à saída serial&lt;/blockquote&gt;&lt;blockquote&gt;    Serial.println(" nanoFarads");          // imprima unidade e retornod de carro&lt;/blockquote&gt;&lt;blockquote&gt;  }&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;  /* descarregue capacitor  */&lt;/blockquote&gt;&lt;blockquote&gt;  digitalWrite(chargePin, LOW);             // ponha LOW em chargePin&lt;/blockquote&gt;&lt;blockquote&gt;  pinMode(dischargePin, OUTPUT);            // ajuste dischargePin como saída&lt;/blockquote&gt;&lt;blockquote&gt;  digitalWrite(dischargePin, LOW);          // ponha LOW&lt;/blockquote&gt;&lt;blockquote&gt;  while(analogRead(analogPin) &amp;gt; 0){         // espere até esvaziar capacitor&lt;/blockquote&gt;&lt;blockquote&gt;  }&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;  pinMode(dischargePin, INPUT);            // ajuste de novo o pino para entrada&lt;/blockquote&gt;&lt;blockquote&gt;}&lt;/blockquote&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-4861216444370479322?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/4861216444370479322/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/04/capacimetro-com-arduino.html#comment-form' title='8 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/4861216444370479322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/4861216444370479322'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/04/capacimetro-com-arduino.html' title='Capacímetro com Arduino'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-1593800983626158219</id><published>2010-04-16T19:37:00.000-03:00</published><updated>2010-04-16T19:37:46.159-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Cronômetro com Arduino</title><content type='html'>&lt;span class="Apple-style-span" style="color: #555555; font-family: Verdana, Geneva, Arial, sans-serif; font-size: 10px; line-height: 15px;"&gt;&lt;/span&gt;&lt;br /&gt;Abaixo, um esboço que demonstra como fazer duas coisas ao mesmo tempo baseado na função millis().&lt;br /&gt;&lt;br /&gt;&lt;div class="vspace"&gt;&lt;/div&gt;&lt;pre&gt;&lt;blockquote&gt;/* Cronômetro&lt;/blockquote&gt;&lt;blockquote&gt; * Paul Badger 2008&lt;/blockquote&gt;&lt;blockquote&gt; * Demonstra o uso de millis(), resistores pull-up, &lt;/blockquote&gt;&lt;blockquote&gt; * como fazer duas coisas acontecerem ao mesmo tempo,&lt;/blockquote&gt;&lt;blockquote&gt; * imprime frações&lt;/blockquote&gt;&lt;blockquote&gt; *&lt;/blockquote&gt;&lt;blockquote&gt; * Montagem física: interruptor momentâneo ao pino 4 e ao&lt;/blockquote&gt;&lt;blockquote&gt; * terra, e o LED com um resistor em série entre o pino 13  &lt;/blockquote&gt;&lt;blockquote&gt; * e o terra&lt;/blockquote&gt;&lt;blockquote&gt; */&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;#define ledPin  13                  // LED ao pino digital 13&lt;/blockquote&gt;&lt;blockquote&gt;#define buttonPin 4                 // botão ao pino 4&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;int value = LOW;                    // valor anterior do LED&lt;/blockquote&gt;&lt;blockquote&gt;int buttonState;                    // variável a guardar estado do botão&lt;/blockquote&gt;&lt;blockquote&gt;int lastButtonState;                // variável a guardar o último estado do botão&lt;/blockquote&gt;&lt;blockquote&gt;int blinking;                       // condição para piscamento - o cronômetro venceu&lt;/blockquote&gt;&lt;blockquote&gt;long interval = 100;                // intervalo de piscamento - mude à vontade&lt;/blockquote&gt;&lt;blockquote&gt;long previousMillis = 0;            // variável a guardar o último momento de atualização do LED&lt;/blockquote&gt;&lt;blockquote&gt;long startTime ;                    // momento de partida do cronômetro&lt;/blockquote&gt;&lt;blockquote&gt;long elapsedTime ;                  // tempo decorrido no cronômetro&lt;/blockquote&gt;&lt;blockquote&gt;int fractional;                     // variável a guardar parte fracionária do tempo&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;void setup()&lt;/blockquote&gt;&lt;blockquote&gt;{&lt;/blockquote&gt;&lt;blockquote&gt;   Serial.begin(9600);&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;   pinMode(ledPin, OUTPUT);       // ajuste o pino digital como saída&lt;/blockquote&gt;&lt;blockquote&gt;   pinMode(buttonPin, INPUT);     // linha não muito necessária, já que os pinos são por padrão entradas&lt;/blockquote&gt;&lt;blockquote&gt;   digitalWrite(buttonPin, HIGH); // ligue resistores de pull-up&lt;/blockquote&gt;&lt;blockquote&gt;}&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;void loop()&lt;/blockquote&gt;&lt;blockquote&gt;{&lt;/blockquote&gt;&lt;blockquote&gt;    // aguarde pressionamento do botão&lt;/blockquote&gt;&lt;blockquote&gt;   buttonState = digitalRead(buttonPin); // leia e guarde estado do botão&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;   if (buttonState == LOW &amp;amp;&amp;amp; lastButtonState == HIGH  &amp;amp;&amp;amp;  blinking == false){&lt;/blockquote&gt;&lt;blockquote&gt;    // veja se houve transição de HIGH para LOW&lt;/blockquote&gt;&lt;blockquote&gt;    // em caso positivo, então trata-se de um novo pressionamento enquanto o relógio não corre: parta o relógio&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;      startTime = millis();    // guarde o tempo de partida&lt;/blockquote&gt;&lt;blockquote&gt;      blinking = true;         // ligue o piscar enquanto corre o relógio&lt;/blockquote&gt;&lt;blockquote&gt;      delay(5);                // pequena pausa para filtrar ruído mecânico do botão&lt;/blockquote&gt;&lt;blockquote&gt;      lastButtonState = buttonState;  // guarde buttonState em lastButtonState, para que possa comparar mais tarde&lt;/blockquote&gt;&lt;blockquote&gt;   }&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;   else if (buttonState == LOW &amp;amp;&amp;amp; lastButtonState == HIGH &amp;amp;&amp;amp; blinking == true){&lt;/blockquote&gt;&lt;blockquote&gt;    // veja se houve transição de HIGH para LOW&lt;/blockquote&gt;&lt;blockquote&gt;    // em caso positivo, trata-se de um novo pressionamento enquanto o relógio corre: pare o relógio e exiba mensagem&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;        elapsedTime = millis() - startTime;  // guarde tempo decorrido&lt;/blockquote&gt;&lt;blockquote&gt;        blinking = false;                    // desligue o pisca-pisca&lt;/blockquote&gt;&lt;blockquote&gt;        lastButtonState = buttonState;       // guarde buttonState em lastButtonState, para comparar mais tarde&lt;/blockquote&gt;&lt;blockquote&gt;       // rotina para exibir tempo decorrido &lt;/blockquote&gt;&lt;blockquote&gt;        Serial.print( (int)(elapsedTime / 1000L));         // divida por 1000 para converter a segundos - e então converta a inteiro&lt;/blockquote&gt;&lt;blockquote&gt;        Serial.print(".");                   // imprima ponto decimal&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;       // use operador módulo para obter parte fracionária part do tempo &lt;/blockquote&gt;&lt;blockquote&gt;       fractional = (int)(elapsedTime % 1000L);&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;       // preencha com zeros à esquerda - não seria ótimo se &lt;/blockquote&gt;&lt;blockquote&gt;       // a linguage Arduino tivesse algo específico para tratar disso? :)&lt;/blockquote&gt;&lt;blockquote&gt;       if (fractional == 0)&lt;/blockquote&gt;&lt;blockquote&gt;          Serial.print("000");      // inclua 3 zeros&lt;/blockquote&gt;&lt;blockquote&gt;       else if (fractional &amp;lt; 10)&lt;/blockquote&gt;&lt;blockquote&gt;          Serial.print("00");       // inclua 2 zeros&lt;/blockquote&gt;&lt;blockquote&gt;       else if (fractional &amp;lt; 100)&lt;/blockquote&gt;&lt;blockquote&gt;          Serial.print("0");        // inclua 1 zero&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;       Serial.println(fractional);  // imprima parte fracionária do tempo&lt;/blockquote&gt;&lt;blockquote&gt;   }&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;   else{&lt;/blockquote&gt;&lt;blockquote&gt;      lastButtonState = buttonState;                        // guarde buttonState em lastButtonState, para comparar mais tarde&lt;/blockquote&gt;&lt;blockquote&gt;   }&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;   // rotina de piscamento - pisca LED enquanto conta o tempo&lt;/blockquote&gt;&lt;blockquote&gt;   // verifique se já é hora de piscar LED; isto é, a diferença&lt;/blockquote&gt;&lt;blockquote&gt;   // entre o tempo atual e o último momento em que piscamos o LED é maior que&lt;/blockquote&gt;&lt;blockquote&gt;   // o intervalo ao qual queremos piscá-lo?&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;   if ( (millis() - previousMillis &amp;gt; interval) ) {&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;      if (blinking == true){&lt;/blockquote&gt;&lt;blockquote&gt;         previousMillis = millis();  // lembre-se da última vez que piscou-se o LED&lt;/blockquote&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;blockquote&gt;         // se LED está desligado, ligue-o e vice-versa&lt;/blockquote&gt;&lt;blockquote&gt;         if (value == LOW)&lt;/blockquote&gt;&lt;blockquote&gt;            value = HIGH;&lt;/blockquote&gt;&lt;blockquote&gt;         else&lt;/blockquote&gt;&lt;blockquote&gt;            value = LOW;&lt;/blockquote&gt;&lt;blockquote&gt;         digitalWrite(ledPin, value);&lt;/blockquote&gt;&lt;blockquote&gt;      }&lt;/blockquote&gt;&lt;blockquote&gt;      else{&lt;/blockquote&gt;&lt;blockquote&gt;         digitalWrite(ledPin, LOW);  // desligue o LED caso não esteja a piscar&lt;/blockquote&gt;&lt;blockquote&gt;      }&lt;/blockquote&gt;&lt;blockquote&gt;   }&lt;/blockquote&gt;&lt;blockquote&gt;}&lt;/blockquote&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-1593800983626158219?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/1593800983626158219/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/04/cronometro-com-arduino.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/1593800983626158219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/1593800983626158219'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/04/cronometro-com-arduino.html' title='Cronômetro com Arduino'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-2738530417738146453</id><published>2010-03-20T11:43:00.000-03:00</published><updated>2010-03-20T11:43:01.049-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Controle Nintendo Wii + Arduino</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Nintendo Wii está revolucionando o modo com que jogadores fazem a interação com o console. Indo um pouco mais a fundo na idéia, perceberemos que dentro do controle do Wii, existem vários sensores, dentre eles um ou mais "acelerometros".&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Pegando carona no controle, foi desenvolvido um adaptador de WiiNunchuck para o Arduino, que recebe o nome de "Nunchuck". O adaptador faz a comunicação com o Arduino por I2C e é muito simples:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;img alt="wiichuck_adapter11" height="240" src="http://www.hacknmod.com/wp-content/uploads/2009/02/wiichuck_adapter11.jpg" width="320" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;adaptador nunchuck&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;img alt="wiichuck-diag1" src="http://www.hacknmod.com/wp-content/uploads/2009/02/wiichuck-diag1.png" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;adaptador nunchuck&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Código Fonte:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;pre style="white-space: pre-wrap; word-wrap: break-word;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;/*&lt;br /&gt; * NunchuckPrint&lt;br /&gt; *&lt;br /&gt; * 2007 Tod E. Kurt, http://todbot.com/blog/&lt;br /&gt; *&lt;br /&gt; * The Wii Nunchuck reading code is taken from Windmeadow Labs&lt;br /&gt; *   http://www.windmeadow.com/node/42&lt;br /&gt; */&lt;br /&gt; &lt;br /&gt;#include &lt;wire.h&gt;&lt;br /&gt;&lt;br /&gt;void setup()&lt;br /&gt;{&lt;br /&gt;  Serial.begin(19200);&lt;br /&gt;  nunchuck_setpowerpins(); // use analog pins 2&amp;amp;3 as fake gnd &amp;amp; pwr&lt;br /&gt;  nunchuck_init(); // send the initilization handshake&lt;br /&gt;  Serial.print ("Finished setup\n");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void loop()&lt;br /&gt;{&lt;br /&gt;  nunchuck_get_data();&lt;br /&gt;  nunchuck_print_data();&lt;br /&gt;  delay(100);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//&lt;br /&gt;// Nunchuck functions&lt;br /&gt;//&lt;br /&gt;&lt;br /&gt;static uint8_t nunchuck_buf[6];   // array to store nunchuck data,&lt;br /&gt;&lt;br /&gt;// Uses port C (analog in) pins as power &amp;amp; ground for Nunchuck&lt;br /&gt;static void nunchuck_setpowerpins()&lt;br /&gt;{&lt;br /&gt;#define pwrpin PORTC3&lt;br /&gt;#define gndpin PORTC2&lt;br /&gt;    DDRC |= _BV(pwrpin) | _BV(gndpin);&lt;br /&gt;    PORTC &amp;amp;=~ _BV(gndpin);&lt;br /&gt;    PORTC |=  _BV(pwrpin);&lt;br /&gt;    delay(100);  // wait for things to stabilize        &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// initialize the I2C system, join the I2C bus,&lt;br /&gt;// and tell the nunchuck we're talking to it&lt;br /&gt;void nunchuck_init()&lt;br /&gt;{ &lt;br /&gt;  Wire.begin();                 // join i2c bus as master&lt;br /&gt;  Wire.beginTransmission(0x52); // transmit to device 0x52&lt;br /&gt;  Wire.send(0x40);  // sends memory address&lt;br /&gt;  Wire.send(0x00);  // sends sent a zero.  &lt;br /&gt;  Wire.endTransmission(); // stop transmitting&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Send a request for data to the nunchuck&lt;br /&gt;// was "send_zero()"&lt;br /&gt;void nunchuck_send_request()&lt;br /&gt;{&lt;br /&gt;  Wire.beginTransmission(0x52); // transmit to device 0x52&lt;br /&gt;  Wire.send(0x00);  // sends one byte&lt;br /&gt;  Wire.endTransmission(); // stop transmitting&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Receive data back from the nunchuck, &lt;br /&gt;int nunchuck_get_data()&lt;br /&gt;{&lt;br /&gt;    int cnt=0;&lt;br /&gt;    Wire.requestFrom (0x52, 6); // request data from nunchuck&lt;br /&gt;    while (Wire.available ()) {&lt;br /&gt;      // receive byte as an integer&lt;br /&gt;      nunchuck_buf[cnt] = nunchuk_decode_byte(Wire.receive());&lt;br /&gt;      cnt++;&lt;br /&gt;    }&lt;br /&gt;    nunchuck_send_request();  // send request for next data payload&lt;br /&gt;    // If we recieved the 6 bytes, then go print them&lt;br /&gt;    if (cnt &amp;gt;= 5) {&lt;br /&gt;     return 1;   // success&lt;br /&gt;    }&lt;br /&gt;    return 0; //failure&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Print the input data we have recieved&lt;br /&gt;// accel data is 10 bits long&lt;br /&gt;// so we read 8 bits, then we have to add&lt;br /&gt;// on the last 2 bits.  That is why I&lt;br /&gt;// multiply them by 2 * 2&lt;br /&gt;void nunchuck_print_data()&lt;br /&gt;{ &lt;br /&gt;  static int i=0;&lt;br /&gt;  int joy_x_axis = nunchuck_buf[0];&lt;br /&gt;  int joy_y_axis = nunchuck_buf[1];&lt;br /&gt;  int accel_x_axis = nunchuck_buf[2]; // * 2 * 2; &lt;br /&gt;  int accel_y_axis = nunchuck_buf[3]; // * 2 * 2;&lt;br /&gt;  int accel_z_axis = nunchuck_buf[4]; // * 2 * 2;&lt;br /&gt;&lt;br /&gt;  int z_button = 0;&lt;br /&gt;  int c_button = 0;&lt;br /&gt;&lt;br /&gt;  // byte nunchuck_buf[5] contains bits for z and c buttons&lt;br /&gt;  // it also contains the least significant bits for the accelerometer data&lt;br /&gt;  // so we have to check each bit of byte outbuf[5]&lt;br /&gt;  if ((nunchuck_buf[5] &amp;gt;&amp;gt; 0) &amp;amp; 1) &lt;br /&gt;    z_button = 1;&lt;br /&gt;  if ((nunchuck_buf[5] &amp;gt;&amp;gt; 1) &amp;amp; 1)&lt;br /&gt;    c_button = 1;&lt;br /&gt;&lt;br /&gt;  if ((nunchuck_buf[5] &amp;gt;&amp;gt; 2) &amp;amp; 1) &lt;br /&gt;    accel_x_axis += 2;&lt;br /&gt;  if ((nunchuck_buf[5] &amp;gt;&amp;gt; 3) &amp;amp; 1)&lt;br /&gt;    accel_x_axis += 1;&lt;br /&gt;&lt;br /&gt;  if ((nunchuck_buf[5] &amp;gt;&amp;gt; 4) &amp;amp; 1)&lt;br /&gt;    accel_y_axis += 2;&lt;br /&gt;  if ((nunchuck_buf[5] &amp;gt;&amp;gt; 5) &amp;amp; 1)&lt;br /&gt;    accel_y_axis += 1;&lt;br /&gt;&lt;br /&gt;  if ((nunchuck_buf[5] &amp;gt;&amp;gt; 6) &amp;amp; 1)&lt;br /&gt;    accel_z_axis += 2;&lt;br /&gt;  if ((nunchuck_buf[5] &amp;gt;&amp;gt; 7) &amp;amp; 1)&lt;br /&gt;    accel_z_axis += 1;&lt;br /&gt;&lt;br /&gt;  Serial.print(i,DEC);&lt;br /&gt;  Serial.print("\t");&lt;br /&gt;  &lt;br /&gt;  Serial.print("joy:");&lt;br /&gt;  Serial.print(joy_x_axis,DEC);&lt;br /&gt;  Serial.print(",");&lt;br /&gt;  Serial.print(joy_y_axis, DEC);&lt;br /&gt;  Serial.print("  \t");&lt;br /&gt;&lt;br /&gt;  Serial.print("acc:");&lt;br /&gt;  Serial.print(accel_x_axis, DEC);&lt;br /&gt;  Serial.print(",");&lt;br /&gt;  Serial.print(accel_y_axis, DEC);&lt;br /&gt;  Serial.print(",");&lt;br /&gt;  Serial.print(accel_z_axis, DEC);&lt;br /&gt;  Serial.print("\t");&lt;br /&gt;&lt;br /&gt;  Serial.print("but:");&lt;br /&gt;  Serial.print(z_button, DEC);&lt;br /&gt;  Serial.print(",");&lt;br /&gt;  Serial.print(c_button, DEC);&lt;br /&gt;&lt;br /&gt;  Serial.print("\r\n");  // newline&lt;br /&gt;  i++;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Encode data to format that most wiimote drivers except&lt;br /&gt;// only needed if you use one of the regular wiimote drivers&lt;br /&gt;char nunchuk_decode_byte (char x)&lt;br /&gt;{&lt;br /&gt;  x = (x ^ 0x17) + 0x17;&lt;br /&gt;  return x;&lt;br /&gt;}&lt;/wire.h&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;Com o código não se assuste! Basta saber que para receber dados do Wii, digitar: "&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;nunchuck_get_data();&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;, quando quiser imprimir os valores na serial, digitar: "&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;nunchuck_print_data();&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;".&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Resultado:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;img alt="nunchuck-data" src="http://www.hacknmod.com/wp-content/uploads/2009/02/nunchuck-data.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Usando o serial monitor do Arduino você consegue visualizar estes dados. Pode em um futuro próximo também, adicionar caracteristas ao processing, pensou já? Quanta coisa daria para ser feita?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Qq dúvida, postar comentário.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Créditos: Hack N Mod&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-2738530417738146453?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/2738530417738146453/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/03/controle-nintendo-wii-arduino.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/2738530417738146453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/2738530417738146453'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/03/controle-nintendo-wii-arduino.html' title='Controle Nintendo Wii + Arduino'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-9128750313886753160</id><published>2010-03-16T22:57:00.001-03:00</published><updated>2010-03-20T11:44:02.145-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Conectando Xbee ao Arduino</title><content type='html'>&lt;p align="justify"&gt;Este post visa exemplificar os primeiros passos com Arduino e Xbee.&lt;/p&gt;  &lt;p align="justify"&gt;Xbee são módulos de rádio para efetuar comunicação serial entre dois pontos (ponto a ponto, ponto a multiponto e etc), conta com protocolo Zigbee e assim garante fidelidade na conexão. Estes são produzidos pela DIGI (antiga MaxStream) e possui duas versões a série 1 e 2. Série 1 e 2 não se comunicam entre si e ambas possuem modelos bem semelhantes:&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Xbee 1mW&lt;/strong&gt;, antena tipo fio, RSPMA ,UFL e chip. A distância de comunicação chega até 40m em ambientes fechados e 100m em ambientes abertos.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;XbeePRO 50mW&lt;/strong&gt;, antena tipo fio, RSPMA ,UFL e chip. A distância de comunicação chega até 300m em ambientes fechados e 1600m em ambientes abertos.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://lh5.ggpht.com/_t9dpDgIUVLw/S6A2S1eFyTI/AAAAAAAAAE4/XqjQXYt28qM/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_t9dpDgIUVLw/S6A2X8i0ikI/AAAAAAAAAE8/Uxc8_vAeTR8/image_thumb%5B1%5D.png?imgmax=800" width="397" height="289" /&gt;&lt;/a&gt; Módulo Xbee 1mW – MaxStream&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://lh5.ggpht.com/_t9dpDgIUVLw/S6A2hUoDj0I/AAAAAAAAAFA/v6KnCZAFAAk/s1600-h/image%5B7%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_t9dpDgIUVLw/S6A2nqb78XI/AAAAAAAAAFE/CJLd_SfMUoc/image_thumb%5B3%5D.png?imgmax=800" width="408" height="314" /&gt;&lt;/a&gt; Xbee Shield para Arduino&lt;/p&gt;  &lt;p align="justify"&gt;O Xbee utiliza o protocolo ZigBee que este por sua vez utiliza como base o protocolo IEEE 802.15.4.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;u&gt;Utilizações:&lt;/u&gt;    &lt;br /&gt;&lt;strong&gt;Automação Residencial:&lt;/strong&gt; Controle de Iluminação, Alarmes, Controle de Temperatura;    &lt;br /&gt;&lt;strong&gt;Automação Predial:&lt;/strong&gt; Controle de Temperatura, Telemetria Elevadorista, Controle Elétrico;    &lt;br /&gt;&lt;strong&gt;Automação industrial:&lt;/strong&gt; Telecontrole de Sensores, Terminais Inteligentes, Comunicação com Centrais.    &lt;br /&gt;&lt;strong&gt;Automação Comercial:&lt;/strong&gt; Geradores de Senhas, Terminais Inteligentes, Software simultâneo;&lt;/p&gt;  &lt;p align="left"&gt;Em nosso caso vamos criar uma conexão entre dois Xbee utilizando o Arduino e o PC.&lt;/p&gt;  &lt;p align="left"&gt;&lt;strong&gt;Materiais Necessários:     &lt;br /&gt;&lt;/strong&gt;2 Shield Xbee para Arduino;    &lt;br /&gt;2 Arduino (um deles sem o microcontrolador, cuidado ao retirar para não entortar os seus pinos);    &lt;br /&gt;2 Módulos Xbee;    &lt;br /&gt;1 Bateria 9V para alimentar o Arduino extra;    &lt;br /&gt;1 Caso USB (A-B) para conectar o Arduino ao PC;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Configuração Inicial&lt;/strong&gt;    &lt;br /&gt;De fábrica cada módulo Xbee vem configurado com uma PANID (número que identifica a rede) de número 3332 e configurados com uma taxa de transmissão de 9600 baud, com dados de 8 bits sem paridade e 1 bit de parada.&lt;/p&gt;  &lt;p align="justify"&gt;Cada Xbee Shield tem um par de jumpers para definir se a comunicação serial se realiza pela porta USB ou pelao próprio Xbee. Como primeira tentativa vamos configura-lo para interagir com a porta USB, isso significa colocar os jumpers na posição externa dos pinos, na figura abaixo pode-se ver como ficaria.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://lh3.ggpht.com/_t9dpDgIUVLw/S6A2u-anZwI/AAAAAAAAAFI/uUeb3GtILwk/s1600-h/image%5B11%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_t9dpDgIUVLw/S6A22Eur9CI/AAAAAAAAAFM/rVElKQgkP1Q/image_thumb%5B5%5D.png?imgmax=800" width="412" height="313" /&gt;&lt;/a&gt;Configuração dos pinos do shield Xbee &lt;/p&gt;  &lt;p align="justify"&gt;Podemos utilizar o programa HyperTerminal do Windows para começar a configurar o módulo Xbee. Outra alternativa seria usar o Serial Monitor que vem integrado com a IDE do Arduino ou o programa&lt;strong&gt; &lt;a href="http://hubbard.engr.scu.edu/embedded/avr/software/Terminal.exe" target="_blank"&gt;Bray++ Terminal&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;O comando necessário para começar a programar o módulo é “&lt;strong&gt;+++&lt;/strong&gt;”, ou seja três simbolos de soma consecutivos. Teclando-os devemos receber como resposta um “&lt;strong&gt;OK&lt;/strong&gt;” &lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://lh3.ggpht.com/_t9dpDgIUVLw/S6A28puoSkI/AAAAAAAAAFQ/emEZ9VNR9hs/s1600-h/image%5B16%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_t9dpDgIUVLw/S6A2-3y48-I/AAAAAAAAAFU/jIY2Ll_PQjI/image_thumb%5B8%5D.png?imgmax=800" width="426" height="302" /&gt;&lt;/a&gt;Estabelecendo conexão com o Xbee &lt;/p&gt;  &lt;p align="justify"&gt;Uma vez estabelecida a conexão só temos 5 segundos para interagir com o módulo. Depois deste tempo, o módulo regressa a seu estado nativo e para voltar a conexão deve redigitar “&lt;strong&gt;+++&lt;/strong&gt;”.&lt;/p&gt;  &lt;p align="justify"&gt;Cada comando que mandamos ao Xbee deve ser precedido pelas letras AT (de AT Command = Comando AT)&lt;/p&gt;  &lt;p align="justify"&gt;A tabela de comandos mais usuais pode ser encontrado na página dedicada no site do &lt;a href="http://www.arduino.cc/en/Main/ArduinoXbeeShield" target="_blank"&gt;Arduino&lt;/a&gt;. &lt;/p&gt;  &lt;p align="justify"&gt;Usaremos para conexão ao PC a placa Arduino sem o microcontrolador ATMEGA. A razão para isto é que desta maneira podemos diretamente interagir pelo USB com o módulo Xbee.&lt;/p&gt;  &lt;p align="justify"&gt;Para este exemplo proponho a seguinte configuração: uma PANID de 3332, um módulo com endereço ‘0’ e o outro com ‘1’. O módulo com endereço ‘0’ será o que&amp;#160; vai estar conectado ao PC e o módulo com endereço ‘1’ será o módulo remoto.&lt;/p&gt;  &lt;p align="justify"&gt;Para configurar o primeiro com a endereço ‘0’, 9600 baud, 8 bits, sem paridade, com 1 bit de parada e comunicação com o módulo de ID1 usamos os seguintes comandos:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#333333"&gt;&lt;strong&gt;&lt;em&gt;ATID3332&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#333333"&gt;&lt;strong&gt;&lt;em&gt;DH0&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#333333"&gt;&lt;strong&gt;&lt;em&gt;DL1&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#333333"&gt;&lt;strong&gt;&lt;em&gt;MY0&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#333333"&gt;&lt;strong&gt;&lt;em&gt;BD3&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#333333"&gt;&lt;strong&gt;&lt;em&gt;WR&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color="#333333"&gt;&lt;strong&gt;&lt;em&gt;CN&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;As letras AT indicam ao Xbee que vamos lhe enviar comandos.   &lt;br /&gt;&lt;strong&gt;ID3332&lt;/strong&gt;: Define PANID de 3332;    &lt;br /&gt;&lt;font color="#333333"&gt;&lt;strong&gt;DH0&lt;/strong&gt;: Define direção ‘1’, com quem o Xbee estará se comunicando;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&lt;/font&gt;&lt;font color="#333333"&gt;&lt;strong&gt;DL1&lt;/strong&gt;: Define direção ‘1’, com quem o Xbee estará se comunicando;&amp;#160; &lt;br /&gt;&lt;/font&gt;&lt;font color="#333333"&gt;&lt;strong&gt;MY0&lt;/strong&gt;: Define endereço ‘0’, próprio endereço;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#333333"&gt;&lt;strong&gt;BD3&lt;/strong&gt;: Define velocidade em 9600 baud;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#333333"&gt;&lt;strong&gt;WR&lt;/strong&gt;: Faz a gravação do módulo;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#333333"&gt;&lt;strong&gt;CN&lt;/strong&gt;: Encerra conexão com o módulo;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Passo seguinte é conectar o segundo Xbee Shield ao Arduino sem microcontrolador. Configuramos da mesma maneira:   &lt;br /&gt;&lt;strong&gt;ID3332&lt;/strong&gt;: Define PANID de 3332;    &lt;br /&gt;&lt;font color="#333333"&gt;&lt;strong&gt;DH0&lt;/strong&gt;: Define endereço ‘1’, com quem o Xbee estará se comunicando;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&lt;/font&gt;&lt;font color="#333333"&gt;&lt;strong&gt;DL1&lt;/strong&gt;: Define endereço ‘1’, com quem o Xbee estará se comunicando;&amp;#160; &lt;br /&gt;&lt;/font&gt;&lt;font color="#333333"&gt;&lt;strong&gt;MY0&lt;/strong&gt;: Define endereço ‘1’, próprio endereço;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#333333"&gt;&lt;strong&gt;BD3&lt;/strong&gt;: Define velocidade em 9600 baud;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#333333"&gt;&lt;strong&gt;WR&lt;/strong&gt;: Faz a gravação do módulo;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#333333"&gt;&lt;strong&gt;CN&lt;/strong&gt;: Encerra conexão com o módulo;&lt;/font&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Depois de terminada a configuração dos módulos estamos aptos de estabelecer uma conexão cpm os módulos.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Programando o Arduino remoto&lt;/strong&gt;    &lt;br /&gt;Vamos colocar o módulo Xbee com endereço ‘1’ no Arduino que tem o microcontrolador e vamos programar nele um código que envia via Serial um número. Também vamos incluir uma leitura da porta serial para saber se foi recebido um caracter em particular e se caso for afirmativos iremos trocar o estado de um LED conectado ao pino digital 13.&lt;/p&gt;  &lt;p align="justify"&gt;É importante remover o módulo Xbee dete Arduino enquanto programamos, para que possamos estabelecer a comunicação serial.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;int numero = 0;     &lt;br /&gt;char recepcao;      &lt;br /&gt;int estado = 1;&lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;void setup() {      &lt;br /&gt;Serial.begin(9600);      &lt;br /&gt;}&lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;void loop() {      &lt;br /&gt;Serial.print(numero);      &lt;br /&gt;Serial.println();      &lt;br /&gt;delay(1000);      &lt;br /&gt;numero++;      &lt;br /&gt;// ler da serial      &lt;br /&gt;recepcao = Serial.read();      &lt;br /&gt;if (recepcao == 'x')      &lt;br /&gt;{      &lt;br /&gt;estado = !estado;      &lt;br /&gt;digitalWrite(13,estado);      &lt;br /&gt;}      &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="justify"&gt;Depois de carregar este código podemos testa-lo abrindo uma conexão serial entre o Arduino. Devemos observar o numero ascendente e quando enviamos o caracter ‘x’ devemos observar uma troca do estado do LED conectado ao pino 13&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Provando a comunicação sem fio     &lt;br /&gt;&lt;/strong&gt;Uma vez programado o Arduino vamos desconectar o jumper USB e colocar no outro, aonde possamos alimenta-lo com uma bateira 9V. Também vamos conectar o Xbee para que possa começar a comunicação serial sem fio. Devemos nos assegurar que os jumpers do interior do Arduino estejam em ‘Xbee&amp;quot;’. No PC vamos conectar o Arduino sem microcontrolador com o Xbee shield de endereço ‘0’ e vamos abrir o Hyper Terminal, depois de alguns segundos devemos começar a observar o numero recebido do endereço ‘1’ em ascendencia e quando teclamos a tecla ‘x’ conferimos se o LED mudou de estado.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://lh6.ggpht.com/_t9dpDgIUVLw/S6A3Ao4bkTI/AAAAAAAAAFY/2iLFL22K2zo/s1600-h/image%5B20%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_t9dpDgIUVLw/S6A3DdJjHVI/AAAAAAAAAFc/Q99W7Otaxog/image_thumb%5B10%5D.png?imgmax=800" width="426" height="380" /&gt;&lt;/a&gt;Recebendo os dados pelo Hyper Terminal do Windows &lt;/p&gt;  &lt;p align="justify"&gt;Espero que gostem do exemplo e o desenvolvam com sabedoria. Xbee é uma ferramenta implantada no Brasil em meados de 2007 e está em plena expansão.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-9128750313886753160?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/9128750313886753160/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/03/conectando-xbee-ao-arduino.html#comment-form' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/9128750313886753160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/9128750313886753160'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/03/conectando-xbee-ao-arduino.html' title='Conectando Xbee ao Arduino'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_t9dpDgIUVLw/S6A2X8i0ikI/AAAAAAAAAE8/Uxc8_vAeTR8/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-5698476354295689992</id><published>2010-03-10T23:40:00.001-03:00</published><updated>2010-03-20T11:44:02.145-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Como visualizar graficamente dados do seu Arduino em tempo real?</title><content type='html'>&lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="nunchuck-visualization" alt="nunchuck-visualization" src="http://www.hacknmod.com/wp-content/uploads/2009/02/nunchuck-visualization.jpg" width="402" height="322" /&gt;&lt;/p&gt;  &lt;p align="justify"&gt;O título deste post pode parecer um tanto assustador no começo, porém lembre-se de que nos temos um companheiro e tanto para este feito que é o PROCESSING! Vocês se lembram de um post que eu já citei sobre ele? O que ele irá fazer? Ele irá servir de base para fazermos as amostras dos dados na tela do PC!&lt;/p&gt;  &lt;p&gt;&lt;img title="wiimote2" alt="wiimote2" src="http://www.hacknmod.com/wp-content/uploads/2009/01/wiimote2.jpg" width="389" height="375" /&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Vamos usar um controle do nintendo WII neste tutorial, por que possui varios sensores que podemos escolher (entre eles o acelerometro) e faciilmente o conctamos ao Arduino para receber dados.&lt;/p&gt;  &lt;p align="justify"&gt;Uma vez que os sensores transmitiram dados com sucesso para a porta serial, nos podemos usar estes dados para criar um gráfico, criamos uma nova perspectiva para ele. Para começar, iremos pegar o valor de uma variavel vinda pela porta serial e jogar no grafico, o resultado deve ficar mais ou menos assim:&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="graph" alt="graph" src="http://www.hacknmod.com/wp-content/uploads/2009/02/graph.jpg" width="198" height="165" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Código (Sketch):&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre&gt;//Este exemplo le em um simples byte valores de 0 a 255 e faz o grafico.&lt;br /&gt;&lt;br /&gt;/////////////////////////////////////////&lt;br /&gt;//Código comunicação serial básica&lt;br /&gt;//por Chang Soo Lee&lt;br /&gt;//ITP, NYU&lt;br /&gt;//Criado em 11/27/2005&lt;br /&gt;/////////////////////////////////////////&lt;br /&gt;&lt;br /&gt;import processing.serial.*;&lt;br /&gt;Serial myPort;&lt;br /&gt;int serial = 1; &lt;br /&gt;PFont font;&lt;br /&gt;int numH = 370;  &lt;br /&gt;&lt;br /&gt;void setup () {&lt;br /&gt;  size(270, 440);&lt;br /&gt;  println(Serial.list());&lt;br /&gt;  myPort = new Serial(this, Serial.list()[0], 9600);&lt;br /&gt;  // Carrega a fonte &lt;br /&gt;  // Diretrorio de seu sketch. Use Tools &amp;gt; Create Font &lt;br /&gt;  // para criar uma distributable bitmap font  &lt;br /&gt;  // para fontes de vetor use a função createFont() &lt;br /&gt;  font = loadFont(&amp;quot;ArialMT-48.vlw&amp;quot;); &lt;br /&gt;  smooth(); &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void draw () {&lt;br /&gt;  background(255);&lt;br /&gt;&lt;br /&gt;  if (myPort.available() &amp;gt; 0) {&lt;br /&gt;    serial = myPort.read();&lt;br /&gt;    serialEvent();&lt;br /&gt;  } &lt;br /&gt;&lt;br /&gt;  line(70,70,70,370);  &lt;br /&gt;  line(70,370,200,370);&lt;br /&gt;  fill(0);&lt;br /&gt;  textFont(font, 11); &lt;br /&gt;  text(&amp;quot;Sensor\nValue&amp;quot;,22,80);&lt;br /&gt;  text(&amp;quot;Analog Input&amp;quot;, 95, 390);&lt;br /&gt;  text(serial,25,110);&lt;br /&gt;  noFill();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void serialEvent(){&lt;br /&gt;  if(serial&amp;gt;1){&lt;br /&gt;  rect(120,numH-serial, 20, serial);&lt;br /&gt;  } &lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="justify"&gt;Similar ao anterior agora vamos fazer o gráfico de várias variaveis ao mesmo tempo. É um pouco mais complicado pois nós temos que separar as variaveis. Para aprender como fazer isto sugiro que deem uma olhada sobre “transmissao serial multivariavel” no site do Arduino (&lt;a href="http://www.arduino.cc"&gt;www.arduino.cc&lt;/a&gt;).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="multi-variable" alt="multi-variable" src="http://www.hacknmod.com/wp-content/uploads/2009/02/multi-variable.jpg" width="211" height="242" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Código:&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;pre&gt;// 3 sensores analogicos formatados e enviados pelo arduino. processing pega estes dados e faz o grafico.&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;br /&gt;// From ITP at NYU – //http://itp.nyu.edu/physcomp/&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;//código que vai no arduino!!!!&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;int an1, an2, an3 = 0;&lt;br /&gt;&lt;br /&gt;void setup() {&lt;br /&gt;  Serial.begin(19200);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void loop() {&lt;br /&gt;  an1 = analogRead(0);&lt;br /&gt;  delay(5); &lt;br /&gt;  an2 = analogRead(1);&lt;br /&gt;  delay(5); &lt;br /&gt;  an3 = analogRead(2);&lt;br /&gt;  Serial.print(&amp;quot;X&amp;quot;);&lt;br /&gt;  Serial.println(an1,DEC);&lt;br /&gt;  Serial.print(&amp;quot;Y&amp;quot;);&lt;br /&gt;  Serial.println(an2,DEC);&lt;br /&gt;  Serial.print(&amp;quot;Z&amp;quot;);&lt;br /&gt;  Serial.println(an3,DEC);&lt;br /&gt;  delay(15);               &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//Código que vai no PROCESSING!!!!&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;br /&gt;import processing.serial.*;&lt;br /&gt;&lt;br /&gt;String buff = &amp;quot;&amp;quot;;&lt;br /&gt;int val = 0;&lt;br /&gt;int NEWLINE = 10;&lt;br /&gt;int xPos,yPos,zPos = 0;&lt;br /&gt;int displaySize = 2;&lt;br /&gt;int an1, an2, an3;&lt;br /&gt;&lt;br /&gt;Serial port;&lt;br /&gt;&lt;br /&gt;void setup(){&lt;br /&gt;  background(80);&lt;br /&gt;  size(800,600);&lt;br /&gt;  smooth();&lt;br /&gt;&lt;br /&gt;  port = new Serial(this, Serial.list()[0], 19200);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void draw(){&lt;br /&gt;  // new background over old&lt;br /&gt;  fill(80,5);&lt;br /&gt;  noStroke();&lt;br /&gt;  rect(0,0,width,height);&lt;br /&gt;&lt;br /&gt;  // deixa uma pequena area em frente dos novos dados&lt;br /&gt;  fill(80);&lt;br /&gt;  rect(xPos+displaySize,0,50,height);&lt;br /&gt;&lt;br /&gt;  // Verifica serial e processa&lt;br /&gt;  while (port.available() &amp;gt; 0) {&lt;br /&gt;    serialEvent(port.read());&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;void serialEvent(int serial) { &lt;br /&gt;  if(serial != '\n') { &lt;br /&gt;    buff += char(serial);&lt;br /&gt;  } else {&lt;br /&gt;    int curX = buff.indexOf(&amp;quot;X&amp;quot;);&lt;br /&gt;    int curY = buff.indexOf(&amp;quot;Y&amp;quot;);&lt;br /&gt;    int curZ = buff.indexOf(&amp;quot;Z&amp;quot;);&lt;br /&gt;&lt;br /&gt;    if(curX &amp;gt;=0){&lt;br /&gt;      String val = buff.substring(curX+1);&lt;br /&gt;      an1 = Integer.parseInt(val.trim());&lt;br /&gt;&lt;br /&gt;      xPos++;&lt;br /&gt;      if(xPos &amp;gt; width) xPos = 0;&lt;br /&gt;&lt;br /&gt;      sensorTic(xPos,an1+20);&lt;br /&gt;    }    &lt;br /&gt;    if(curY &amp;gt;=0){&lt;br /&gt;      String val = buff.substring(curY+1);&lt;br /&gt;      an2 = Integer.parseInt(val.trim());&lt;br /&gt;&lt;br /&gt;      yPos++;&lt;br /&gt;      if(yPos &amp;gt; width) yPos = 0;&lt;br /&gt;&lt;br /&gt;      sensorTic(yPos,an2-255);&lt;br /&gt;    }&lt;br /&gt;    if(curZ &amp;gt;=0){&lt;br /&gt;      String val = buff.substring(curZ+1);&lt;br /&gt;      an3 = Integer.parseInt(val.trim());&lt;br /&gt;&lt;br /&gt;      zPos++;&lt;br /&gt;      if(zPos &amp;gt; width) zPos = 0;&lt;br /&gt;&lt;br /&gt;      sensorTic(zPos,an3-255);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    // Limpa valor de &amp;quot;buff&amp;quot;&lt;br /&gt;    buff = &amp;quot;&amp;quot;;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void sensorTic(int x, int y){&lt;br /&gt;  stroke(0,0,255);&lt;br /&gt;  fill(0,0,255);&lt;br /&gt;  ellipse(x,y,displaySize,displaySize);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;br /&gt;  &lt;pre&gt;Em breve postarei como adaptar o controle do WII em seu Arduino.&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-5698476354295689992?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/5698476354295689992/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/03/como-visualizar-graficamente-dados-do.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/5698476354295689992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/5698476354295689992'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/03/como-visualizar-graficamente-dados-do.html' title='Como visualizar graficamente dados do seu Arduino em tempo real?'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-7986967381184140837</id><published>2010-02-22T21:16:00.001-03:00</published><updated>2010-02-22T21:16:03.732-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Arduino + Sensor Temperatura + Visual c# parte 2/2</title><content type='html'>&lt;p align="justify"&gt;Vimos anteriormente como utilizar os dados enviados pelo arduino no ZEDGRAPH, agora iremos criar um programa em Visual C#, para formatar os dados.&lt;/p&gt;  &lt;p align="justify"&gt;Você poerá utilizar o programa exemplo em C# anterior para fazer um “managed” de suas portas com.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;code&gt;private void serialPortArduino_DataReceived(object sender,&amp;#160; &lt;br /&gt;&amp;#160; System.IO.Ports.SerialDataReceivedEventArgs e)        &lt;br /&gt;{        &lt;br /&gt;&amp;#160; int bytesToRead = serialPortArduino.BytesToRead;        &lt;br /&gt;&amp;#160; if (bytesToRead &amp;gt;= 13)        &lt;br /&gt;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; char[] z = new char[13];        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; serialPortArduino.Read(z, 0, 13);        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; string n = new string(z);        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ProcessReceivedData(n);        &lt;br /&gt;&amp;#160; }        &lt;br /&gt;}&lt;/code&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="justify"&gt;&lt;code&gt;Código para receber dado do Arduino via Serial. Observe que os dados vão se agrupando em um vetor conforme chegam ao buffer.&lt;/code&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;code&gt;delegate void SetTextCallback(string text);       &lt;br /&gt;private void ProcessReceivedData(string text)        &lt;br /&gt;{        &lt;br /&gt;&amp;#160; if (this.zedGraphControlTemperature.InvokeRequired)        &lt;br /&gt;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SetTextCallback d = new SetTextCallback(ProcessReceivedData);        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; this.Invoke(d, new object[] { text });        &lt;br /&gt;&amp;#160; }        &lt;br /&gt;&amp;#160; else        &lt;br /&gt;&amp;#160; {        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; temperatureData.Add(GetActualTimeInDouble(),&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ConvertToCelsius(Convert.ToDouble(text.Split(':')[1])));        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; zedGraphControlTemperature.AxisChange();        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; zedGraphControlTemperature.PerformAutoScale();        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; zedGraphControlTemperature.Refresh();        &lt;br /&gt;&amp;#160; }        &lt;br /&gt;}&lt;/code&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="justify"&gt;Função esta que trata o dado recebido pelo Arduino na Serial, já armazenada em vetor. Utiliza do componente ZEDGRAPH para tal.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:444d080b-e81c-4f36-92e9-eba25a2ff5a7" class="wlWriterEditableSmartContent"&gt;&lt;div id="e52066f4-7b7b-46a9-a36e-811b53adee1e" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=GIQFVPZX7yg&amp;amp;feature=player_embedded" target="_new"&gt;&lt;img src="http://lh6.ggpht.com/_t9dpDgIUVLw/S4MeQDLeE4I/AAAAAAAAAEw/sAH9eVrWvzA/videof29aba31b7bb%5B3%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('e52066f4-7b7b-46a9-a36e-811b53adee1e'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;391\&amp;quot; height=\&amp;quot;327\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/GIQFVPZX7yg&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/GIQFVPZX7yg&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;391\&amp;quot; height=\&amp;quot;327\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Previa do programa trabalhando! Não reparem o som (de ótima qualidade, rs)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Código Fonte Projeto pronto:&lt;/strong&gt;    &lt;br /&gt;&lt;a href="http://erwin.ried.cl/files/articles/arduino_temp_001/TemperatureLogger_Fuentes.rar"&gt;TemperatureLogger v0.1 (Código fonte)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Executável da aplicação:&lt;/strong&gt;    &lt;br /&gt;&lt;a href="http://erwin.ried.cl/files/articles/arduino_temp_001/TemperatureLogger_v0.1_ejecutable.rar"&gt;TemperatureLogger v0.1&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Código fonte para o Arduino:&lt;/strong&gt;    &lt;br /&gt;&lt;a href="http://erwin.ried.cl/files/articles/arduino_temp_001/TemperatureLogger_Arduino.rar"&gt;TemperatureLogger v0.1 (Archivo fuente para el IDE de Arduino)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Créditos para:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://erwin.ried.cl/"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Ir a la página principal" border="0" src="http://erwin.ried.cl/img/template/title.png" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-7986967381184140837?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/7986967381184140837/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/arduino-sensor-temperatura-visual-c_22.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/7986967381184140837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/7986967381184140837'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/arduino-sensor-temperatura-visual-c_22.html' title='Arduino + Sensor Temperatura + Visual c# parte 2/2'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_t9dpDgIUVLw/S4MeQDLeE4I/AAAAAAAAAEw/sAH9eVrWvzA/s72-c/videof29aba31b7bb%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-2831623636690737307</id><published>2010-02-22T20:43:00.001-03:00</published><updated>2010-02-22T21:17:31.092-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Arduino + Sensor Temperatura + Visual c# parte 1/2</title><content type='html'>&lt;p align="justify"&gt;Vejamos passo a passo como capturar um valor de temperatura pelo Arduino, enviar via Serial e Interpretar com Visual C# no pc.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://erwin.ried.cl/inc/image.php?imagen=img/articles/arduino_temp_001/img_002.jpg&amp;amp;formato=html"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Haga clic para ampliar la imagen" border="1" src="http://erwin.ried.cl/inc/image.php?imagen=img/articles/arduino_temp_001/img_002.jpg&amp;amp;ancho=auto&amp;amp;alto=200&amp;amp;ancholimite=650&amp;amp;altolimite=1000&amp;amp;nocopyright&amp;amp;esminiatura" width="411" height="261" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="center"&gt;ProtoShield&lt;/p&gt;  &lt;p&gt;&lt;a href="http://erwin.ried.cl/inc/image.php?imagen=img/articles/arduino_temp_001/img_003.jpg&amp;amp;formato=html"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="Haga clic para ampliar la imagen" border="1" src="http://erwin.ried.cl/inc/image.php?imagen=img/articles/arduino_temp_001/img_003.jpg&amp;amp;ancho=auto&amp;amp;alto=200&amp;amp;ancholimite=650&amp;amp;altolimite=1000&amp;amp;nocopyright&amp;amp;esminiatura" width="398" height="336" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="center"&gt;Arduino Duemila&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://erwin.ried.cl/inc/image.php?imagen=img/articles/arduino_temp_001/img_004.jpg&amp;amp;formato=html"&gt;&lt;img title="Haga clic para ampliar la imagen" border="1" src="http://erwin.ried.cl/inc/image.php?imagen=img/articles/arduino_temp_001/img_004.jpg&amp;amp;ancho=auto&amp;amp;alto=200&amp;amp;ancholimite=650&amp;amp;altolimite=1000&amp;amp;nocopyright&amp;amp;esminiatura" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="center"&gt;Sensor temperatura ZX-TEMP&lt;/p&gt;  &lt;p align="justify"&gt;ZX-TEMP, nada mais é que um termistor e voce pode facilmente troca-lo por outro do mesmo tipo, existe infinitos!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Circuito Temperatura:&lt;/strong&gt;    &lt;br /&gt;&lt;/p&gt; &lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="1" src="http://erwin.ried.cl/inc/image.php?imagen=img/articles/arduino_temp_001/img_008.png&amp;amp;ancholimite=650&amp;amp;altolimite=1000" width="418" height="313" /&gt;  &lt;p align="justify"&gt;Sketchs, partes que considero importantes p/ entendimento do mesmo:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;code&gt;float convertToCelsius(long sensorVal)&amp;#160; &lt;br /&gt;{        &lt;br /&gt;&amp;#160; return map((int)(sensorVal*1000),        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; 438000,573000,26000,37000)/1000;        &lt;br /&gt;}&lt;/code&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="justify"&gt;Função “convertToCelsius”, tem por função mapear a unidade referida e retorna-la já em Celsius (ler o sensor e mostrar o resultado!).&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;code&gt;void printTemp(float tempCelcius)       &lt;br /&gt;{        &lt;br /&gt;&amp;#160; // Formato TEMP_:000000:        &lt;br /&gt;&amp;#160; Serial.print(&amp;quot;TEMP_:&amp;quot;);        &lt;br /&gt;&amp;#160; if(tempCelcius&amp;lt;100) // tem menos de 3 dígitos        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Serial.print(&amp;quot;0&amp;quot;);        &lt;br /&gt;&amp;#160; if(tempCelcius&amp;lt;10) // tem menos de 2 dígitos        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Serial.print(&amp;quot;0&amp;quot;);        &lt;br /&gt;&amp;#160; int c = (int)tempCelcius;        &lt;br /&gt;&amp;#160; float r = tempCelcius-c;        &lt;br /&gt;&amp;#160; Serial.print(c);        &lt;br /&gt;&amp;#160; long rem = r*1000;        &lt;br /&gt;&amp;#160; Serial.print(rem);&amp;#160; &lt;br /&gt;&amp;#160; if(rem&amp;lt;100) // Tem menos de 3 dígitos        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Serial.print(&amp;quot;0&amp;quot;);        &lt;br /&gt;&amp;#160; if(rem&amp;lt;10) // Tem menos de 2 dígitos        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Serial.print(&amp;quot;0&amp;quot;);&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160; Serial.print(&amp;quot;:&amp;quot;);        &lt;br /&gt;}&lt;/code&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align="justify"&gt;&lt;code&gt;Esta função tem por objetivo formatar o dado recebido pela “convertToCelsius” para mandar via SERIAL! O protocolo particular utilizado é de mandar um inteiro de 000000 digitos! Mas por quê então preciso desta função, ora bolas?&lt;/code&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;code&gt;Lembre-se: ‘000050’ é diferente de ‘50’ quando voce vai manda-lo via SERIAL, por isso a necessidade da função!!&lt;/code&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;code&gt;Agora antes de iniciarmos na plataforma Microsoft Visual C#, podemos trabalhar com o programa &lt;a href="http://zedgraph.org/wiki/index.php?title=Main_Page"&gt;ZedGraph&lt;/a&gt;, o qual é um gerador de gráficos que também interpreta dados vindos por determinada serial.&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="1" src="http://erwin.ried.cl/inc/image.php?imagen=img/articles/arduino_temp_001/img_012.png&amp;amp;ancholimite=650&amp;amp;altolimite=1000" width="410" height="295" /&gt;&lt;a href="http://zedgraph.org/wiki/index.php?title=Main_Page"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Como vamos nos conectar ao Arduino, é necessário escolher uma porta.&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="1" src="http://erwin.ried.cl/inc/image.php?imagen=img/articles/arduino_temp_001/img_011.png&amp;amp;ancholimite=650&amp;amp;altolimite=1000" width="404" height="216" /&gt;&lt;/p&gt;  &lt;p&gt;A finalidade é gerar algo parecido com isto:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_t9dpDgIUVLw/S4MWrioii5I/AAAAAAAAAEo/CN4QH8vFKWI/s1600-h/image%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_t9dpDgIUVLw/S4MWsXT_D_I/AAAAAAAAAEs/1z_3T6hYtQI/image_thumb%5B2%5D.jpg?imgmax=800" width="424" height="299" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Sketch Arduino Completo:    &lt;br /&gt;&lt;a href="http://erwin.ried.cl/files/articles/arduino_temp_001/TemperatureLogger_Arduino.rar"&gt;TemperatureLogger v0.1 (Código fonte ARDUINO)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Visual C# no próximo post!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-2831623636690737307?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/2831623636690737307/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/arduino-sensor-temperatura-visual-c.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/2831623636690737307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/2831623636690737307'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/arduino-sensor-temperatura-visual-c.html' title='Arduino + Sensor Temperatura + Visual c# parte 1/2'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_t9dpDgIUVLw/S4MWsXT_D_I/AAAAAAAAAEs/1z_3T6hYtQI/s72-c/image_thumb%5B2%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-3561841216149640884</id><published>2010-02-19T12:08:00.001-02:00</published><updated>2010-02-22T21:17:31.092-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Arduino seguindo a luz</title><content type='html'>&lt;p align="justify"&gt;Esta é uma forma simples de você fazer um servo motor seguir a luz, usando alguns simples componentes!&lt;/p&gt;  &lt;div style="padding-bottom: 0px; padding-left: 0px; width: 374px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:82e9c23e-ec3b-4a1a-83e9-46296fe035fe" class="wlWriterEditableSmartContent"&gt;&lt;div id="1b0d8565-b99d-4eb6-8414-f277ad9058a7" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=iEhX27ahreI&amp;amp;feature=player_embedded" target="_new"&gt;&lt;img src="http://lh6.ggpht.com/_t9dpDgIUVLw/S36bV0GI_kI/AAAAAAAAAEc/hDdrRw4zUKE/videoca6b4d3440b2%5B3%5D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('1b0d8565-b99d-4eb6-8414-f277ad9058a7'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;374\&amp;quot; height=\&amp;quot;313\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/iEhX27ahreI&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/iEhX27ahreI&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;374\&amp;quot; height=\&amp;quot;313\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p align="justify"&gt;O vídeo original é feito com um ArduinoMEGA, o qual tem mais I/O (entradas e saídas). Todavia pode ser construído com qualquer base “Arduinana”.&lt;/p&gt;  &lt;p align="justify"&gt;Componentes:   &lt;br /&gt;1 x Servo motor (Parabólica serve também)    &lt;br /&gt;2 x Fotoresistores    &lt;br /&gt;2 x Resistor 470ohms&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_t9dpDgIUVLw/S36bXgWsGNI/AAAAAAAAAEg/IfEvulzZ8zk/s1600-h/LightTracker%5B5%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="LightTracker" border="0" alt="LightTracker" src="http://lh3.ggpht.com/_t9dpDgIUVLw/S36bY4L9nnI/AAAAAAAAAEk/YDftZZ69vX8/LightTracker_thumb%5B3%5D.jpg?imgmax=800" width="415" height="294" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Faça as ligações como descrito no esquema do FRITIZING acima.&lt;/p&gt;  &lt;p align="justify"&gt;Lembre-se que a gambiarra aqui é colocar de alguma forma uma pequena protoboard em cima do servo! Ou fica a vontade para usar a imaginação! (veja vídeo topo pagina)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;SKETCH:&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;#include &amp;lt;Servo.h&amp;gt;&lt;/p&gt;    &lt;p&gt;Servo myservo;&lt;/p&gt;    &lt;p&gt;int pos = 0;&amp;#160; // Variavel para guardar posicao servo.     &lt;br /&gt;int inputPhotoLeft = 1; // Facil de ler, instante 1 ou 0.      &lt;br /&gt;int inputPhotoRight = 0;&lt;/p&gt;    &lt;p&gt;int Left = 0; // Guarda valor fotoresistor.     &lt;br /&gt;int Right = 0; // Guarda valor fotoresistor.&lt;/p&gt;    &lt;p&gt;void setup()     &lt;br /&gt;{      &lt;br /&gt;myservo.attach(9); // Conecta servo ao pino digital 9.      &lt;br /&gt;}&lt;/p&gt;    &lt;p&gt;void loop()     &lt;br /&gt;{      &lt;br /&gt;// Le os valores dos fotoresistores e guarda nas variaveis&amp;#160; &lt;br /&gt;Left = analogRead(inputPhotoLeft);      &lt;br /&gt;Right = analogRead(inputPhotoRight);&lt;/p&gt;    &lt;p&gt;// Checa se a esquerda é maior que direita, se sim move p/ direita.     &lt;br /&gt;if (Left &amp;gt; (Right +20))      &lt;br /&gt;// +20 é uma zona morta, sem isso causa interferencia.      &lt;br /&gt;{      &lt;br /&gt;if (pos &amp;lt; 179)      &lt;br /&gt;pos++;      &lt;br /&gt;myservo.write(pos);      &lt;br /&gt;}&lt;/p&gt;    &lt;p&gt;// Checa se a esquerda é menor que a direita, se sim move esquerda.     &lt;br /&gt;if (Right &amp;gt; (Left +20))      &lt;br /&gt;// +20 é uma zona morta, sem isso causa interferencia.      &lt;br /&gt;{      &lt;br /&gt;if (pos &amp;gt; 1)      &lt;br /&gt;pos -= 1;      &lt;br /&gt;myservo.write(pos);      &lt;br /&gt;}&lt;/p&gt;    &lt;p&gt;// Adicionando delay ou não o servo corre mais devagar     &lt;br /&gt;delay(10);      &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Qualquer dúvida por favor comente, seu feedback é muito importante!&lt;/p&gt;  &lt;p&gt;Créditos, &lt;a title="http://stigern.net/blog/?cat=35" href="http://stigern.net/blog/?cat=35"&gt;http://stigern.net/blog/?cat=35&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-3561841216149640884?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/3561841216149640884/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/arduino-seguindo-luz.html#comment-form' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3561841216149640884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3561841216149640884'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/arduino-seguindo-luz.html' title='Arduino seguindo a luz'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_t9dpDgIUVLw/S36bV0GI_kI/AAAAAAAAAEc/hDdrRw4zUKE/s72-c/videoca6b4d3440b2%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-7683623538871395111</id><published>2010-02-18T22:41:00.002-02:00</published><updated>2010-02-18T22:42:24.418-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Arduino comunicando com Visual C#</title><content type='html'>&lt;div align="justify"&gt;Como se pode comunicar com o Arduino através de um computador e recorrendo à linguagem C#? O objectivo é fazer uma coisa com este aspecto:&lt;/div&gt;&lt;a href="http://lh3.ggpht.com/_t9dpDgIUVLw/S33eMjFT-MI/AAAAAAAAAEU/oUyUvVz1RF4/s1600-h/image%5B3%5D.png"&gt;&lt;img alt="image" border="0" height="230" src="http://lh4.ggpht.com/_t9dpDgIUVLw/S33eNwcPSSI/AAAAAAAAAEY/RYFKlCQB02I/image_thumb%5B1%5D.png?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" title="image" width="366" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;div align="justify"&gt;Antes de mais nada instale a versão gratuita do &lt;a href="http://www.microsoft.com/express/vcsharp/"&gt;Microsoft Visual C# Express&lt;/a&gt; (a Microsoft também tem coisas boas!).&lt;/div&gt;&lt;div align="justify"&gt;A idéia principal do programa é enviar uma informação através da porta serial à qual está ligado o Arduino. Em rigor, o Arduino está ligado ao computador através de USB mas como tem um conversor USB-Serial, abstraímos-nos do USB e falamos apenas da ligação Serial. &lt;br /&gt;Por forma a simplificar o "protocolo" de comunicação a informação transmitida é constituída apenas por caracteres. Um caracter corresponde a uma determinada ação. Descreve-se aqui o exemplo mais simples que é acender e apagar um LED!&lt;/div&gt;&lt;div align="justify"&gt;Abre o Microsoft Visual C# Express e faz File&amp;gt;New&amp;gt;Project e na tab Visual C# escolhe "Windows Forms Application". &lt;br /&gt;Vais precisar de uma TextBox, um Button, duas Labels, duas ComboBoxes e uma SerialPort. Arrasta cada um desses compotentes para a Form1 que é criada assim que cria o projecto. Para adicionar o código a cada um destes componentes basta clicar duas vezes em cima de cada um.&lt;/div&gt;&lt;div align="justify"&gt;Só vou listar aqui as duas partes de código que considero mais importantes. O código na íntegra está disponível no fim deste post. &lt;br /&gt;Para que possa comunicar-se através da porta Serial tem que definir, pelo menos, duas coisas: a taxa de transferência de dados (BAUD RATE) e a porta em que está ligado o Arduino (por ex: COM7). Se não souber em que porta está ligado o Arduino clica com o botão direito do mouse no "Meu Computador", "Propriedades" e em "Gerenciador de Dispositivos". Aí, encontrará essa informação. &lt;br /&gt;Para definir a baud rate utiliza o seguinte código:&lt;/div&gt;&lt;blockquote&gt;private void baudrate_combobox_SelectedIndexChanged(object sender, EventArgs e) &lt;br /&gt;{ &lt;br /&gt;serialPort.BaudRate = Convert.ToInt16(baudrate_combobox.Text); &lt;br /&gt;}&lt;/blockquote&gt;&lt;div align="justify"&gt;O valor escolhido para a baud rate tem de corresponder ao utilizado pelo Arduino. &lt;br /&gt;Para definir a porta serial bem como efetuar a sua abertura, utiliza o seguinte código:&lt;/div&gt;&lt;blockquote&gt;private void port_combobox_SelectedIndexChanged(object sender, EventArgs e) &lt;br /&gt;{ &lt;br /&gt;serialPort.PortName = port_combobox.Text; &lt;br /&gt;try &lt;br /&gt;{ &lt;br /&gt;serialPort.Open(); &lt;br /&gt;} &lt;br /&gt;catch (Exception ex) &lt;br /&gt;{ &lt;br /&gt;MessageBox.Show(ex.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); &lt;br /&gt;} &lt;br /&gt;}&lt;/blockquote&gt;&lt;div align="justify"&gt;As funções try/catch previnem o programa de qualquer exceção que possa ocorrer na abertura da porta Serial. &lt;br /&gt;Por fim, para enviar uma mensagem para o Arduino utiliza o seguinte código:&lt;/div&gt;&lt;blockquote&gt;private void send_button_Click(object sender, EventArgs e) &lt;br /&gt;{ &lt;br /&gt;try &lt;br /&gt;{ &lt;br /&gt;serialPort.Write(message_textbox.Text); &lt;br /&gt;message_textbox.Text = ""; &lt;br /&gt;} &lt;br /&gt;catch (Exception ex) &lt;br /&gt;{ &lt;br /&gt;MessageBox.Show(ex.Message,"ERROR",MessageBoxButtons.OK,MessageBoxIcon.Error); &lt;br /&gt;} &lt;br /&gt;}&lt;/blockquote&gt;&lt;div align="justify"&gt;Por sua vez vais precisar de enviar código para o Arduino por forma a que este fique à espera e reconheça os comandos (caracteres, neste caso) que lhe envia. Assim faz o upload do seguinte código:&lt;/div&gt;&lt;blockquote&gt;#define BAUD_RATE 9600 &lt;br /&gt;#define ledPin&amp;nbsp;&amp;nbsp;&amp;nbsp; 13 &lt;br /&gt;char incomingChar; &lt;br /&gt;void setup() &lt;br /&gt;{ &lt;br /&gt;pinMode(ledPin, OUTPUT); &lt;br /&gt;// serial communication &lt;br /&gt;Serial.begin(BAUD_RATE); &lt;br /&gt;} &lt;br /&gt;void loop() &lt;br /&gt;{ &lt;br /&gt;if(Serial.available() &amp;gt; 0){ &lt;br /&gt;incomingChar = Serial.read(); &lt;br /&gt;//your protocol goes here &lt;br /&gt;switch(incomingChar){ &lt;br /&gt;case '1': &lt;br /&gt;// led is ON &lt;br /&gt;digitalWrite(ledPin, HIGH); &lt;br /&gt;break; &lt;br /&gt;case '0': &lt;br /&gt;// led is OFF &lt;br /&gt;digitalWrite(ledPin, LOW); &lt;br /&gt;break; &lt;br /&gt;} &lt;br /&gt;} &lt;/blockquote&gt;&lt;div align="justify"&gt;O que é que este código quer dizer? Quer dizer que se enviar um caracter '1' o LED ligado no pino 13 se acende e que se enviar um caracter '0' o LED fica desligado. &lt;br /&gt;Concluindo... C# é uma excelente linguagem para, com poucas linhas e em pouco tempo, se fazer umas brincadeiras interessantes. Mais. O que se tentou aqui fazer foi, nada mais nada menos, do que algo que já existe no Arduino IDE desde a sua versão 0017. Ainda assim, espero que tenha sido do teu agrado.&lt;/div&gt;&lt;strong&gt;&lt;em&gt;LINKS P/ PROGRAMAS COMPILADOS:&lt;/em&gt;&lt;/strong&gt; &lt;br /&gt;&lt;a href="http://www.mediafire.com/?ykmytmojgun"&gt;TalkToArduino C# source code&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.mediafire.com/?jndyy2yrnyz"&gt;TakToArduino.pde&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Créditos, http://bravomofo.blogspot.com/2009/12/talk-to-arduino-with-c.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-7683623538871395111?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/7683623538871395111/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/arduino-comunicando-com-visual-c.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/7683623538871395111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/7683623538871395111'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/arduino-comunicando-com-visual-c.html' title='Arduino comunicando com Visual C#'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_t9dpDgIUVLw/S33eNwcPSSI/AAAAAAAAAEY/RYFKlCQB02I/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-8438143348805820524</id><published>2010-02-17T22:53:00.001-02:00</published><updated>2010-02-22T21:17:51.838-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Teoria'/><title type='text'>Diodo</title><content type='html'>&lt;p align="justify"&gt;No artigo sobre como se acende um LED acabei por falar de díodos. Disse que o LED tem um ánodo e um cátodo, o qual causa uma queda de tensão de um certo valor, que é polarizado e mostrei o seu símbolo eléctrico. Tudo isto se aplica a um díodo comum, com pequenas variações: a queda de tensão provocada por um díodo comum é de aproximadamente &lt;strong&gt;0.7 V&lt;/strong&gt;, e o símbolo é muito parecido com o do LED, só não tendo as 2 “ondas” (que representam a luz que sai do LED). No símbolo mais comum do LED, estas ondas são apenas setas retas, e tem uma bola em redor.&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="D�odo e LED" src="http://troniquices.files.wordpress.com/2007/11/diodo1.png?w=495" /&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Caracteristicas do diodo:&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;em&gt;Só conduz corrente eléctrica num sentido, do ánodo para o cátodo. &lt;/em&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;em&gt;Só começa a conduzir corrente quando a tensão aplicada é igual ou superior a 0.7 V. &lt;/em&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;em&gt;Quando conduz corrente, causa uma queda (redução) de tensão de 0.7 V.&lt;/em&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;em&gt;1. &lt;strong&gt;Só conduz corrente eléctrica num sentido, do ánodo para o cátodo.&lt;/strong&gt;&lt;/em&gt;    &lt;br /&gt;A melhor forma de perceber é utilizar um LED como exemplo, e vou utilizar o mesmo circuito do artigo sobre como acender LEDs. A figura abaixo mostra 2 versões desse circuito. A versão &lt;strong&gt;à esquerda&lt;/strong&gt; é a habitual, que usamos para acender o LED; a corrente, a vermelho tracejado, circula do ponto positivo da fonte para o negativo, e o LED deixa passar essa corrente, acendendo. No circuito &lt;strong&gt;à direita&lt;/strong&gt;, o LED está ligado “ao contrário”, e desta forma impede a corrente de circular; o LED mantém-se apagado. Portanto o LED só deixa passar a corrente eléctrica num sentido, do ánodo para o cátodo tal como acontece no circuito da esquerda: a corrente entra pelo ánodo e sai pelo cátodo! Repare-se como o símbolo do próprio díodo é uma seta que aponta no sentido em que deixa passar a corrente.&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="O Led (d�odo) como válvula unidireccional" src="http://troniquices.files.wordpress.com/2007/11/diodo2.png?w=495" width="407" height="194" /&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Muitas vezes é feita uma comparação da corrente eléctrica a circular num circuito com a água a circular em canos. É possível ter num cano de água um dispositivo semelhante a um díodo:&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="Analogia com a água" src="http://troniquices.files.wordpress.com/2007/11/diodo3.png?w=495" /&gt;&lt;/p&gt;  &lt;p align="justify"&gt;As 2 portas, a castanho, abrem-se facilmente empurradas pela força da água, deixando-a passar, desde que a água circule da direita para a esquerda (por exemplo empurrada por uma bomba de água). Se ela vier da esquerda, então vai empurrar as portas de tal modo que estas fecham-se, impedindo a água de continuar a fluir para a direita. Um díodo faz a mesma coisa.   &lt;br /&gt;Outras analogias são as veias do nosso corpo, que têm válvulas que deixam passar o sangue apenas num sentido, e também os “pipos” das camaras de ar dos pneus, que apenas deixam passar o ar de fora para dentro (quando estamos a encher). São ambos exemplos de “díodos”, noutros domínios.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;em&gt;2. &lt;strong&gt;Só começa a conduzir corrente quando a tensão aplicada é igual ou superior a 0.7 V.&lt;/strong&gt;&lt;/em&gt;    &lt;br /&gt;Esta característica é bastante auto-explicativa. Se a tensão da fonte que fornece energia ao circuito for inferior 0.7 V, o díodo não se deixa atravessar por corrente. Ele apresenta-se como um circuito aberto, tal como se tivessemos ligado o díodo ao contrário. Digamos que 0.7 V é a tensão mínima para que o díodo comece a funcionar. E isto leva-nos à última característica.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;em&gt;3. &lt;strong&gt;Quando conduz corrente, causa uma queda (redução) de tensão de 0.7 V.&lt;/strong&gt;&lt;/em&gt;    &lt;br /&gt;Se voltarmos à analogia com a água e à figura do canal de água mais acima, podemos pensar que alguma da &lt;em&gt;força da corrente&lt;/em&gt; da água é gasta a abrir e manter as portas abertas. Podemos pensar na força da água como sendo a tensão (força electromotriz), e assim a analogia completa-se. Se formos medir a tensão nos pinos de um díodo quando este está a conduzir corrente, vamor medir aproximadamente os 0.7 V, tal com nos circuitos com LEDs (mas neste caso a tensão depende da cor do LED).&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Ok… então se os LEDs dão luz, o díodo comum faz o quê?&lt;/strong&gt; Bom, os díodos começaram por ser utilizados como componentes &lt;em&gt;rectificadores&lt;/em&gt;. Muito informalmente, &lt;em&gt;rectificar&lt;/em&gt; é transformar um sinal AC num sinal DC. Num sinal AC a tensão varia entre valores negativos e valores positivos, e a sua aplicação a um díodo elimina uma metade do sinal, a metade positiva ou a metade negativa dependendo da forma como o díodo é ligado. No circuito abaixo temos uma fonte de tensão de 5 V AC, que é rectificada por um díodo que lhe remove a metade negativa do sinal, ficando uma tensão DC. O gráfico mostra o valor da tensão no ponto AC (a verde) e no ponto DC (a azul).&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="O d�odo como rectificador" src="http://troniquices.files.wordpress.com/2007/12/copia-de-diodorectificador.png?w=495" width="390" height="392" /&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Deve ter reparado na diferença de amplitude entre as 2 tensões… consegue adivinhar a que se deve? Sim? Não? E se eu te disser que essa diferença é de 0.7 V, ajuda&amp;#160; ? Pois é, é preciso não esquecer que &lt;strong&gt;o díodo causa uma queda de tensão de 0.7 V&lt;/strong&gt;. A &lt;em&gt;rectificação&lt;/em&gt; é usada por exemplo em receptores de rádio e fontes de conversão AC-DC (como um carregador típico de bateria de celular, que converte os 220 V AC da rede em 4 ou 5 V DC).&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Humm… e é só para isso que o díodo serve?&lt;/strong&gt; Não, na verdade, as utilizações do díodo estão apenas limitadas pela nossa imaginação! Mas exemplos típicos de utilização são: conversores DC-DC comutados, como &lt;em&gt;referências de tensão&lt;/em&gt; baratas, como redutores de tensão, e para impedir que a ligação acidental de fontes de tensão “ao contrário” causem danos em equipamentos, entre outros. Em tempos também foram usados em electrónica digital, como portas digitais e na construção de memórias ROM. Acho que vale a pena falar um pouquinho mais acerca de &lt;strong&gt;algumas&lt;/strong&gt; das utilizações típicas.&lt;/p&gt;  &lt;p align="justify"&gt;Imagina que tem um aparelho que é muito sensível e caro (por exemplo um auxiliar de audição), e portanto quer protegê-lo de vários tipos de acidentes. Um dos acidentes que pode acontecer é o utilizador do aparelho colocar as pilhas ao contrário por distração ou porque não leu o manual como deve ser. Uma forma de efetuar essa proteção é exactamente colocar um díodo em série com a fonte de alimentação (as pilhas).&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="Protecção contra inversão da tensão de alimentação" src="http://troniquices.files.wordpress.com/2007/11/diodo5proteccaoinversaodaenergia.png?w=495" width="402" height="188" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Como o díodo só conduz corrente eléctrica num sentido, se as pilhas forem colocadas ao contrário o díodo “barra” a passagem da corrente e não acontece nenhuma desgraça ao pobre aparelho. Nesta aplicação aproveitamos a &lt;strong&gt;característica nº 1&lt;/strong&gt; do díodo.&lt;/p&gt;  &lt;p align="justify"&gt;Com a &lt;strong&gt;2ª característica&lt;/strong&gt; do díodo pode fazer um circuito que verifica se um par de pilhas &lt;strong&gt;alcalinas&lt;/strong&gt; de 1.5 V ainda tem carga suficiente, acendendo um LED em caso afirmativo:&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="Testador de pares de pilhas alcalinas de 1.5V" src="http://troniquices.files.wordpress.com/2007/11/diodo6testadordepardepilhasalcalinas.png?w=495" /&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Uma pilha alcalina vulgar está completamente gasta se apresentar 1.1 V de tensão; vamos então arbitrariamente assumir para o nosso exemplo que se ainda medimos 1.25 V a pilha está boa. Neste caso, um par de pilhas alcalinas ainda tem bastante carga se der 1.25 V + 1.25 V = 2.5 V em utilização. Uma vez que o díodo comum só conduz corrente a partir de 0.7 V, e o LED vermelho só a partir de aproximadamente 1.8 V, temos que o díodo mais o LED resultam numa queda de tensão de 0.7 + 1.8 = &lt;strong&gt;2.5 V&lt;/strong&gt;. Logo, são precisos 2.5 V ou mais para que circule corrente no circuito e o LED acenda. Como precisamos de calcular uma resistência para limitar a corrente no LED, vamos usar o valor de tensão de um par de pilhas completamente novas: 3 V. Portanto, aos 3 V a corrente no LED não pode ser mais do que 0.02 A, que é a corrente máxima num LED vermelho. Calculamos então a resistência usando a Lei de Ohm: (3 V – 2.5 V) / 0.02 A = 25 Ω (podemos usar o valor comercial &lt;strong&gt;33 Ω&lt;/strong&gt;).&lt;/p&gt;  &lt;p align="justify"&gt;Agora imagina que tem um circuito que tem que ser alimentado por 2 tensões diferentes; uma é um valor qualquer de 4.5 V a 5.5 V e a outra é de 3.1 V a 3.4 V. Imagina também que só tem 6 V, tirados de 4 pilhas de 1.5 V ligadas em série. Uma forma de obter as tensões desejadas é pegar nos 6 V do conjunto das pilhas e aproveitar a &lt;strong&gt;3ª característica&lt;/strong&gt; do modelo de funcionamento do díodo para obter as tensões menores, como na figura.&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="Obter 5.3V e 3.2V a partir de 6V usando d�odos" src="http://troniquices.files.wordpress.com/2007/11/diodovariastensoes.png?w=495" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;O 1º díodo subtrai 0.7 V e portanto ficamos com 6 – 0.7&lt;strong&gt; = 5.3 V&lt;/strong&gt;, que está dentro do intervalo desejado de 4.5 V a 5.5 V. Depois adicionámos mais 3 díodos em série para reduzir ainda mais a tensão, ficando então com 6 – 0.7 – 3 x 0.7 = &lt;strong&gt;3.2 V&lt;/strong&gt;, que cumpre o requisito de termos um valor no intervalo 3.1 V a 3.4 V. Aqui usamos a característica que o díodo tem de reduzir a tensão em 0.7 V, para obter tensões diferentes da que tínhamos disponível.    &lt;br /&gt;Como nota final acerca deste circuito, é preciso dizer que ele só reduz realmente as tensões para os valores apresentados se houver alguma corrente a fluir pelos díodos. O díodo causa realmente uma queda de tensão, mas só quando flui corrente (lembram-se da regra 3 do modelo? Começa por dizer &lt;em&gt;quando conduz corrente&lt;/em&gt;); isto bate certo com a Lei de Ohm, pois se a corrente é zero, não pode haver queda de tensão! Para termos um conversor utilizável na prática, teriamos que acrescentar uma resistência entre a saída 5.3 V e o negativo, e entre a saída de 3.2 V e também o negativo. Estas resistências fazem com que esteja sempre a fluir uma “correntezinha” mínima e assim os díodos a causar a queda de tensão. A resistência deve ser calculada para deixar fluir &lt;strong&gt;1 mA&lt;/strong&gt; de corrente, que é um valor pequeno para não se deperdiçar muita energia e ao mesmo tempo é um valor suficientemente grande para que o díodo funcione bem. Aplicando a Lei de Ohm podemos calcular essas resistências; por exemplo a resistência para a saída de 3.2 V deve ser 3.2 V / R = 0.001 A (Lei de Ohm, I = V / R) &amp;lt;=&amp;gt; R = 3.2 V / 0.001 A = 3200 ohms.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;strong&gt;Já agora, existem outros tipos de díodo?&lt;/strong&gt; Por acaso existem. Alguns dos mais conhecidos são o díodo &lt;em&gt;Zener&lt;/em&gt;, o &lt;em&gt;Varicap&lt;/em&gt;, o &lt;em&gt;Fotodíodo&lt;/em&gt; e o &lt;em&gt;Schottky&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="Tipos de d�odos" src="http://troniquices.files.wordpress.com/2007/11/diodo8types.png?w=495" width="409" height="119" /&gt;&lt;/p&gt;  &lt;p align="justify"&gt;O Zener é um díodo especial que em certas condições fixa uma certa tensão aos seus terminais; existem díodos Zener para várias tensões maiores que alguns volts, como 3.3 V ou 5.6 V, e são usados como reguladores e referências de tensão.&lt;/p&gt;  &lt;p align="justify"&gt;   &lt;br /&gt;O Varicap é um díodo que funciona como um condensador variável controlado por tensão. Era utilizado por exemplo em sintonizadores de rádio “digitais”, até começarem a ser usados &lt;em&gt;PLL&lt;/em&gt;s.    &lt;br /&gt;&lt;/p&gt;  &lt;p align="justify"&gt;O fotodíodo é um díodo sensível à luz e pode ser usado como detector de luz, para vários comprimentos de onda. É usado por exemplo nos receptores de commandos infra-vermelhos.&lt;/p&gt;  &lt;p align="justify"&gt;   &lt;br /&gt;O Schottky é um díodo em que a queda de tensão é de aproximadamente &lt;strong&gt;0.3 V&lt;/strong&gt; em vez dos típicos 0.7 V. Isto tem a vantagem de haver um menor desperdício de energia por dissipação térmica no díodo, o que é importante em aplicações em que a eficiência energética e baixo consumo são importantes. É que na verdade, a queda de tensão que os díodos apresentam é uma característica indesejável! Vamos pensar no &lt;em&gt;detector de inversão de tensão de alimentação&lt;/em&gt; da figura mais acima. Se o díodo estiver a ser atravessado por uma corrente de &lt;strong&gt;100 mA&lt;/strong&gt;, a potência que ele dissipa na forma de calor (logo, desperdício, porque a função do díodo não é dar calor) é dada pela fórmula da potência (em Watts, &lt;strong&gt;W&lt;/strong&gt;), a quem eu costumo chamar “lei companheira da lei de Ohm” (a fórmula da potência dissipada já dava para outro tutorial):&lt;/p&gt;  &lt;div align="justify"&gt;   &lt;pre&gt;&lt;strong&gt;      P = V x I&lt;/strong&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="justify"&gt;Logo, 0.7 V * 0.1 A = 0.07 W = &lt;strong&gt;70 mW&lt;/strong&gt;. Pode parecer pouco, mas muitos aparelhos portáteis consomem pouco mais do que isso! Se o aparelho estiver a ser alimentado a 3 V, ele estará a consumir (3V – 0.7 V) * 0.1 A = &lt;strong&gt;230 mW&lt;/strong&gt;, e por aqui se vê que 30% (70/230) da potência retirada das pilhas está a ser desperdiçada no díodo! Se for usado um díodo Schottky em vez do díodo comum, a potência perdida será 0.3 * 0.1 = &lt;strong&gt;30 mW&lt;/strong&gt;, ou seja, aproximadamente 13% (30/230) do consumo inicial do aparelho, em vez de 30%. Quer dizer que a autonomia das pilhas aumentou 17% só com a troca de um componente. Uma melhoria significativa!&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;Outra característica que torna os Schottky muito apeteciveis em certas aplicações é a velocidade de reacção. Por ser constituído por apenas um bloco semiconductor e um bloco metálico, este díodo é extremamente rápido a mudar de estado entre “a conduzir” e “ao corte”.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;strong&gt;Então e se eu quiser fazer umas experiências, que díodos posso comprar na loja?…&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="justify"&gt;Bom, existem díodos muito comuns e baratos que pode comprar com facilidade praticamente em qualquer loja de eletronica; são eles o &lt;strong&gt;1N4148&lt;/strong&gt; e o &lt;strong&gt;1N4001&lt;/strong&gt; a &lt;strong&gt;1N4007&lt;/strong&gt;. O 1º é para correntes até perto de 0.2 A e os restantes para correntes até cerca de 1 A.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Qualquer dúvida poste um comentário.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Créditos a NJAY, em &lt;a title="http://troniquices.wordpress.com/2007/11/28/o-diodo/" href="http://troniquices.wordpress.com/2007/11/28/o-diodo/"&gt;http://troniquices.wordpress.com/2007/11/28/o-diodo/&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Desculpe pelo mal entendido, porém internet é internet! Nada se cria tudo se copia…&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Caso alguma parte tenha se ofendido favor ler anuncio a direita do blog!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Att, denadai.sicari&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-8438143348805820524?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/8438143348805820524/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/diodo.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/8438143348805820524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/8438143348805820524'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/diodo.html' title='Diodo'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-4983472331008756469</id><published>2010-02-10T20:33:00.001-02:00</published><updated>2010-02-10T20:33:02.451-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Tellymate Shield</title><content type='html'>&lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" title="tellymate-shield" alt="tellymate-shield" src="http://www.arduinoshow.com/show/wp-content/uploads/2009/05/tellymate-shield.png" width="318" height="239" /&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Já pensou, ao invés de usar LCD comum para mandar mensagens ou atualizar dados enfim… O famoso e notável Display de Cristal Liquido!&lt;/p&gt;  &lt;p align="justify"&gt;Se você já está cansado dele (como eu), chegou a sua vez!&lt;/p&gt;  &lt;p align="justify"&gt;TellyMate é um prototipo para receber comandos pelo canal ICSP, sendo que a Serial para USB, fica livre! Quando ele recebe determinado comandos, envia para uma Televisão mensagens, alguns graficos simples, jogos e por enquanto (infelizmente) apenas em preto e branco.&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="tmate2.png" src="http://blog.makezine.com/upload/2009/05/tv_output_from_arduino_with_tellyma/tmate2.png" width="322" height="240" /&gt;&lt;/p&gt;  &lt;p&gt;Olhe como é simples escrever na Televisão com o TellyMate!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Serial.begin(57600); //57k6 baud      &lt;br /&gt;Serial.println(”Hello!”);&lt;/strong&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;strong&gt;&lt;em&gt;NOTA: EXEMPLO ABAIXO ESTA MODIFICADO!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" alt="tmate1.png" src="http://blog.makezine.com/upload/2009/05/tv_output_from_arduino_with_tellyma/tmate1.png" width="370" height="279" /&gt;&lt;/p&gt;  &lt;p align="justify"&gt;   &lt;br /&gt;Você pode conferir o projeto completo em: &lt;/p&gt;  &lt;p align="justify"&gt;&lt;a title="http://www.batsocks.co.uk/products/Shields/TellyMate%20Shield.htm" href="http://www.batsocks.co.uk/products/Shields/TellyMate%20Shield.htm"&gt;http://www.batsocks.co.uk/products/Shields/TellyMate%20Shield.htm&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Por enquanto não encontrei para compra aqui no Brasil e em muitas poucas lojas na America. Como o autor disponibiliza sua obra no site (código aberto), a única solução é confeccionar a placa! Quando tiver resultados “pomposos” posto aqui para vocês verem o resultado!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-4983472331008756469?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/4983472331008756469/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/tellymate-shield.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/4983472331008756469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/4983472331008756469'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/tellymate-shield.html' title='Tellymate Shield'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-1586184512527359688</id><published>2010-02-05T15:26:00.003-02:00</published><updated>2010-02-05T15:29:53.330-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>delayMicroseconds(μs)</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Suspende a execução do programa pelo tempo (em microsegundos) especificado como parâmetro.&amp;nbsp; Um 1 milisegundo há 1.000 microsegundos e em 1 segundo há 1 milhão.&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Atualmente o maior valor que produzirá uma suspenção precisa é 16383. Isto pode mudar em distribuições futuras do Arduino. Para suspenções maiores que milhares de microsegundo você deve utilizar a função&amp;nbsp;delay().&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Parâmetros&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;μs: o número de microsegundos da suspenção.&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Retorno&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Nenhum&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Exemplo&lt;/h4&gt;&lt;pre style="font-size: 1.25em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;int outPin = 8;                 // digital pino 8&lt;br /&gt;&lt;br /&gt;void setup()&lt;br /&gt;{&lt;br /&gt;  pinMode(outPin, OUTPUT);      // marca o pino digital como saída&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void loop()&lt;br /&gt;{&lt;br /&gt;  digitalWrite(outPin, HIGH);   // ativa o pino&lt;br /&gt;  delayMicroseconds(50);        // suspenção de 50 microsegundos      &lt;br /&gt;  digitalWrite(outPin, LOW);    // desativa o pino&lt;br /&gt;  delayMicroseconds(50);        // suspenção de 50 microsegundos      &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;configura o pino 8 para trabalhar como uma saída. Envia uma cadeia de de pulsos com um período de 100 microsegundos.&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Cuidados e problemas conhecidos&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Esta função funciona com bastante precisão na faixa dos 3 microsegundos e acima. Não podemos nos assegurar que funcione com precisão para tempos de suspenção menores.&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Para assegurar suspenções mais precisas esta função desabilita as interrupções durante sua operação. Isto significa que algumas coisas (como o recebimento de informações seriais, ou que a atualização do valor de retorno da função mills() ) não funcionarão. Desse modo, você deve usar esta função apenas para suspenções curtas, e usar delay() para as mais longas.&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;delayMicroseconds(0) gerará uma suspanção muito maior do que a esperada (~1020 μs) bem como se o parâmetro for um número negativo.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-1586184512527359688?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/1586184512527359688/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/delaymicrosecondss.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/1586184512527359688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/1586184512527359688'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/delaymicrosecondss.html' title='delayMicroseconds(μs)'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-2215262152246721718</id><published>2010-02-05T15:25:00.002-02:00</published><updated>2010-02-05T15:25:59.654-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>delay(ms)</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;Suspende a execução do programa pelo tempo (em milisegundos) especificado como parâmetro. (Em um segundo há 1.000 milisegundos.)&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Parâmetros&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;ms (unsigned long): o número de milisegundos em que o programa ficará com a execução em suspenso.&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Retorno&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;nenhum&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Exemplo&lt;/h4&gt;&lt;pre style="font-size: 1.25em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;int ledPin = 13;                 // LED conectado ao pino digital 13&lt;br /&gt;&lt;br /&gt;void setup()&lt;br /&gt;{&lt;br /&gt;  pinMode(ledPin, OUTPUT);      // marca o pino digital como saída&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void loop()&lt;br /&gt;{&lt;br /&gt;  digitalWrite(ledPin, HIGH);   // acende o LED&lt;br /&gt;  delay(1000);                  // espera por um segundo&lt;br /&gt;  digitalWrite(ledPin, LOW);    // apaga o LED&lt;br /&gt;  delay(1000);                  // espera por um segundo&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Cuidado&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;Embora seja fácil criar um LED piscando com a função delay(), e muitos programas usam intervalos curtos para tarefas como a de filtrar ruídos, o uso do delay() em um programa tem aspectos negativos importantes. Nenhuma leitura de sensores, cálculo matemático, ou manipulação de pinos pode seguir durante a execução desta função, portanto muitas outras funções ficam em espera. Para controles de tempo alternativos veja a função&amp;nbsp;millis()&amp;nbsp;e e seu programa de exemplo. Programadores com mais conhecimento normalmente evitam o uso de delay() para cronometrar eventos mais logos do que 10 milisegundos, a não ser que o programa seja muito simples.&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;Algumas coisas de fato continuam acontecendo enquanto a função delay() está controlando o chip ATmega porque as interrupções não são desabilitadas. A comunicação que aparece no pino RX continua sendo gravada. os pinos e as leituras de PWM (analogWrite) são mantidos, e as interrupções continuam funcionando.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-2215262152246721718?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/2215262152246721718/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/delayms.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/2215262152246721718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/2215262152246721718'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/delayms.html' title='delay(ms)'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-5741275639222643463</id><published>2010-02-05T15:20:00.000-02:00</published><updated>2010-02-05T15:20:31.884-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>micros()</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;Retorna o número de microsegundos desde que a placa Arduino começou a rodar o programa.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;Este número extrapolará (voltará ao zero) depois de aproximamente 70 minutos. Nas placas Arduino de 16 MHz (e.g. Duemilanove e Nano), esta função tem uma resolução de 4 microsegundos (o valor de retorno será sempre um múltiplo de 4) Nas placas Arduino de 8MHz (e.g. LilyPad), esta função tem uma resolução de 8 microsegundos.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;br /&gt;Nota: em 1 milisegundo há 1.000 microsegundos e 1.000.000 de microsegundos em 1 segundo.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;br /&gt;&lt;b&gt;Parâmetros&lt;/b&gt;&lt;br /&gt;Nenhum&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;br /&gt;&lt;b&gt;Retorno&lt;/b&gt;&lt;br /&gt;O número de microsegundos desde que o programa começou a rodar como um tipo&amp;nbsp;longo não assinalado.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;b&gt;Exemplo&lt;/b&gt;&lt;br /&gt;unsigned long time;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;void setup(){&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;Serial.begin(9600);&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;void loop(){&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;Serial.print("Time: ");&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;time = micros(); //imprime o tempo desde que o programa começou a rodar&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;Serial.println(time); //espera um segundo para não ficar enviando quantidades absurdas de dados&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;delay(1000);&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-5741275639222643463?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/5741275639222643463/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/micros.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/5741275639222643463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/5741275639222643463'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/micros.html' title='micros()'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-3925522336895655544</id><published>2010-02-05T15:18:00.002-02:00</published><updated>2010-02-05T15:18:22.477-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>millis()</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Retorna o número de milisegundos desde que a placa Arduino começou a rodar o programa. Este número extrapolrá (voltará ao zero) depois de aproximamente 50 dias.&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Parâmetros&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Nenhum&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Retorno&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;O número de milisegundos desde que o programa começou a rodar como um tipo&amp;nbsp;&lt;a href="http://multilogica-shop.com/node/56" style="color: #27638c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_self"&gt;longo não assinalado&lt;/a&gt;.&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Exemplo&lt;/h4&gt;&lt;pre style="font-size: 1.25em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;unsigned long time;&lt;br /&gt;&lt;br /&gt;void setup(){&lt;br /&gt;  Serial.begin(9600);&lt;br /&gt;}&lt;br /&gt;void loop(){&lt;br /&gt;  Serial.print("Time: ");&lt;br /&gt;  time = millis();&lt;br /&gt;  //imprime o tempo desde que o programa começou&lt;br /&gt;  Serial.println(time);&lt;br /&gt;  // espera um segundo para não ficar enviando quantidades absurdas de dados&lt;br /&gt;  delay(1000);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Dica:&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Verifique o retorno para o&amp;nbsp;&lt;strong&gt;millis&lt;/strong&gt;&amp;nbsp;é um longo não assinalado. Erros podem ocorrer se um programador tentar realizar cálculos com outros tipos de dados, como inteiros.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-3925522336895655544?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/3925522336895655544/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/millis.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3925522336895655544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3925522336895655544'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/millis.html' title='millis()'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-6860606433722902195</id><published>2010-02-05T15:09:00.002-02:00</published><updated>2010-02-05T15:09:50.478-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>random()</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A função random gera números pseudo-aleatórios.&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Sintaxe&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;long random(max)&lt;br /&gt;long random(min, max)&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Parâmetros&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;min - limite inferior do valor aleatório, inclusivo&amp;nbsp;&lt;em&gt;(opcional)&lt;/em&gt;&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;max - limite superior do valor aleatório, exclusivo&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Retorno&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;long - um número aleatório entre min e (max-1)&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Note:&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Se for importante para uma seqüência de valores gerados pela função random() ser diferente, a cada execução de um programa, use randomSeed() para inicializar o gerador de números aleatórios a partir de um valor também aleatório, como um analogRead() de um pino que não esteja conectado.&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;De modo semelhante, pode ocasionalmente ser útil usar seqüências pseudo-aleatórias que se repetem exatamente a cada execução de um programa. Isto pode ser obtido atravéz da função randomSeed() de um número fixado, antes de se iniciar a seqüência aleatória.&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Exemplo&lt;/h4&gt;&lt;pre style="font-size: 1.25em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;long randNumber;&lt;br /&gt;&lt;br /&gt;void setup(){&lt;br /&gt;  Serial.begin(9600);&lt;br /&gt;&lt;br /&gt;  // se o pino de entrada analógica 0 não estiver conectado, ruído analógico&lt;br /&gt;  // aleatório fará com que a função randomSeed() gere&lt;br /&gt;  // diferente números de início cada vez que o programa for executado.&lt;br /&gt;  // randomSeed() irá embralhar a função random.&lt;br /&gt;  randomSeed(analogRead(0));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void loop() {&lt;br /&gt;  // imprime um número aleatório entre 0 e 299&lt;br /&gt;  randNumber = random(300);&lt;br /&gt;  Serial.println(randNumber);  &lt;br /&gt;&lt;br /&gt;  // imprime um número aleatório entre 10 e 19&lt;br /&gt;  randNumber = random(10, 20);&lt;br /&gt;  Serial.println(randNumber);&lt;br /&gt;&lt;br /&gt;  delay(50);&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-6860606433722902195?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/6860606433722902195/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/random.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/6860606433722902195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/6860606433722902195'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/random.html' title='random()'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-6191813601656421471</id><published>2010-02-05T15:08:00.002-02:00</published><updated>2010-02-05T15:08:44.901-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>pow(base, expoente)</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Calcula o valor de um número elevado a uma potência. Pow() pode ser utilizado com uma potência fracionária. É útil para gerar mapeamentos exponenciais de valores ou curvas.&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Parâmetros&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;base: o número(&lt;em&gt;float&lt;/em&gt;)&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;expoente: a potência à qual a base é elevada (&lt;em&gt;float&lt;/em&gt;)&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Retorno&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;O resultado da exponeciação (&lt;em&gt;double&lt;/em&gt;)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-6191813601656421471?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/6191813601656421471/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/powbase-expoente.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/6191813601656421471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/6191813601656421471'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/powbase-expoente.html' title='pow(base, expoente)'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-8040709066440699327</id><published>2010-02-05T15:07:00.002-02:00</published><updated>2010-02-05T15:07:48.029-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>constrain(x, a, b)</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Restringe um número dentro de uma faixa.&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Parâmetros&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;x: o número a restringir, todos os tipos de dados&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;a: o extremo inferior da faixa, todos os tipos de dados&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;b: o extremo superior da faixa, todos os tipos de dados&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Retorno&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;x&lt;/strong&gt;: se&amp;nbsp;&lt;strong&gt;x&lt;/strong&gt;&amp;nbsp;estiver entre&amp;nbsp;&lt;strong&gt;a&lt;/strong&gt;&amp;nbsp;e&amp;nbsp;&lt;strong&gt;b&lt;/strong&gt;&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;a&lt;/strong&gt;: se&amp;nbsp;&lt;strong&gt;x&lt;/strong&gt;&amp;nbsp;for menor que&amp;nbsp;&lt;strong&gt;a&lt;/strong&gt;&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;b&lt;/strong&gt;: se&amp;nbsp;&lt;strong&gt;x&lt;/strong&gt;&amp;nbsp;for mairo que&amp;nbsp;&lt;strong&gt;b&lt;/strong&gt;&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Exemplo&lt;/h4&gt;&lt;pre style="font-size: 1.25em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;sensVal = constrain(sensVal, 10, 150);&lt;br /&gt;// limita o valor da variável sensVal a valores entre 10 e 150 &lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-8040709066440699327?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/8040709066440699327/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/constrainx-b.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/8040709066440699327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/8040709066440699327'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/constrainx-b.html' title='constrain(x, a, b)'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-8159807560696130899</id><published>2010-02-05T15:06:00.000-02:00</published><updated>2010-02-05T15:29:18.090-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>map(value, fromLow, fromHigh, toLow, toHigh)</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Re-mapeia um número de uma faixa de valores para outra. Isto é, um valor de fromLow é mapeado para toLow, um valor fromHigh para toHigh, e valores intermediários da primeira faixa para a segunda faixa, mantendo-se a proporção entre eles.&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Não restringe valores dentro da faixa, porque valores que extrapolem podem ser úteis e intencionais. A função constrain() pode ser utilizada tantes antes como depois desta função se limites para as faixas forem necessários.&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Verifique que os limites inferiores de uma faixa podem ser maiores ou menores que os limites superiores. Desse modo a função map() pode ser utilizada para colocar em ordem reversa uma faixa de valores, como por exemplo:&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;y = map(x, 1, 50, 50, 1);&lt;/code&gt;&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A função também pode utilizar números negativos como neste exemplo:&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;y = map(x, 1, 50, 50, -100);&lt;/code&gt;&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A função map() utiliza números inteiros e não gera frações. Quando o resultado for fracionário ele será truncado e não arredondado.&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Parâmetros&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;value: o número a ser mapeado&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;fromLow: limite inferior da faixa atual de value&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;fromHigh: limite superior da faixa atual de value&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;toLow: limite inferior da faixa para a qual se quer mapear&lt;/div&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;toHigh: limite superior da faixa para a qual se quer mapear&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Retorno&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;O valor mapeado.&lt;/div&gt;&lt;h4 style="font-size: 1.1em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Exemplo&lt;/h4&gt;&lt;pre style="font-size: 1.25em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;/* Mapear uma entrada analógica de 10 bits para uma saída analógica de 8 bits (0 a 255) */&lt;br /&gt;void setup() {}&lt;br /&gt;&lt;br /&gt;void loop()&lt;br /&gt;{&lt;br /&gt;  int val = analogRead(0);&lt;br /&gt;  val = map(val, 0, 1023, 0, 255);&lt;br /&gt;  analogWrite(9, val);&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-8159807560696130899?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/8159807560696130899/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/mapvalue-fromlow-fromhigh-tolow-tohigh.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/8159807560696130899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/8159807560696130899'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/mapvalue-fromlow-fromhigh-tolow-tohigh.html' title='map(value, fromLow, fromHigh, toLow, toHigh)'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-1116285702694649074</id><published>2010-02-05T14:45:00.000-02:00</published><updated>2010-02-05T14:45:27.654-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Comunicação Serial Arduino Com Fio</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Podemos precisar a qualquer momento nos comunicar com outros dispositivos, no caso outros Arduinos.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Este post traz uma simples solução para este problema, "&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Como se comunicar serialmente com outro ARDUINO!?"&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img height="240" src="http://farm4.static.flickr.com/3132/3133771910_7e32aeea26.jpg?v=0" width="320" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;comunicação serial via modulo XBEE&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img height="240" src="http://farm4.static.flickr.com/3106/3154596431_a5794d3bd0.jpg?v=0" width="320" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;Comunicação serial por fio&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Configurando os pinos RX/TX do Arduino por fio&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;No Arduino emissor teremos um potenciometro, do qual é lido o valor e mandado via serial.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;No receptor teremos um LED que irá mudar o seu brilho conforme o valor do potencimetro.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Faça agora as seguintes conexões:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;TX_ARDUINO#1 - - - - RX_ARDUINO#2&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;RX_ARDUINO#2 - - - - TX_ARDUINO#1&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;NOTA: QUANDO FOR PASSAR O CÓDIGO PARA O ARDUINO, DESCONECTAR OS FIOS DE TX E RX DE AMBOS OS LADOS!&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;Código Emissor:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #222222; font-family: arial, helvetica, sans-serif; font-size: 12px; line-height: 18px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;int analogValue5, val5;&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;void setup() {&lt;br /&gt;// Habilita porta Serial&lt;br /&gt;Serial.begin(19200);&lt;br /&gt;}&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;void loop() {&lt;br /&gt;// Le pino analogico 5&lt;br /&gt;analogValue5 = analogRead(5);&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;// Mapeia os valores para 0 - 255&lt;br /&gt;val5 = map(analogValue5, 0, 1023, 0, 255);&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;// envia o valor via serial em modo binário&lt;br /&gt;Serial.println(val5, BYTE);&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;}&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;&lt;b&gt;Código Receptor:&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;byte incomingByte;&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;void setup() {&lt;br /&gt;// Habilita comunicação serial&lt;br /&gt;Serial.begin(19200);&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;// declara pin 11 como output, este é o LED&lt;br /&gt;pinMode (11, OUTPUT);&lt;br /&gt;}&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;void loop() {&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;// Se há bytes livres vindo da porta serial&lt;br /&gt;if (Serial.available()) {&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;// Seta o valor para a variavel 'incomingByte'&lt;br /&gt;incomingByte = Serial.read();&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;// Escreve o valor no pino 11&lt;br /&gt;analogWrite(11, int(incomingByte));&lt;/div&gt;&lt;div style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 1em;"&gt;}&lt;br /&gt;}&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Espero que seja de bom uso a todos, em breve postarei minhas experiências com um modulo XBEE.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Att,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-1116285702694649074?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/1116285702694649074/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/comunicacao-serial-arduino-com-fio.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/1116285702694649074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/1116285702694649074'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/comunicacao-serial-arduino-com-fio.html' title='Comunicação Serial Arduino Com Fio'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-3323000538216494974</id><published>2010-02-03T19:23:00.000-02:00</published><updated>2010-02-03T19:23:40.474-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blá blá blá'/><title type='text'>Nova IDE Arduino 0018, liberada 29/01/2010.</title><content type='html'>&lt;span class="Apple-style-span" style="color: #222222; font-family: arial, sans; font-size: 13px; line-height: 25px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: arial, sans; font-size: 14px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A nova IDE Arduino 0018 foi liberada no dia 29/01/2010.&lt;/div&gt;&lt;div style="font-family: arial, sans; font-size: 14px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A nova versão traz modificações em bibliotecas, tais como:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Bug consertado do pino R/W LCD&lt;/li&gt;&lt;li&gt;Adicionado&amp;nbsp;parâmetro&amp;nbsp;de precisão para trabalhar com FLOAT&lt;/li&gt;&lt;li&gt;Bug consertado dos pinos analógicos no Arduino MEGA&lt;/li&gt;&lt;/ul&gt;Todas as novidades no release notes são (em inglês):&lt;br /&gt;&lt;div style="font-family: arial, sans; font-size: 14px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;0018 - 2010.01.29&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;[core / libraries]&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;* Added tone() and noTone() functions for frequency generation.&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;* Added Serial.end() command.&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;* Added precision parameter for printing of floats / doubles.&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;* Incorporated latest version of Firmata.&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;* Fixed bug w/ disabling use of the RW pin in the LiquidCrystal library.&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;* No longer disabling interrupts in delayMicroseconds().&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;* Fixed bug w/ micros() returning incorrect values from within an interrupt.&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;* Fixed bug that broke use of analog inputs 8-15 on the Mega.&lt;/div&gt;&lt;div style="font-family: arial, sans; font-size: 14px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;[environment]&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;* Synchronized with the Processing 1.0.9 code base, bringing various fixes,&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;including to a bug causing saving to fail when closing the last sketch.&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;* Added support for third-party hardware in the SKETCHBOOK/hardware folder,&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;mirroring the current structure of the hardware folder in Arduino.&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;* Added Ctrl-Shift-M / Command-Shift-M shortcut for serial monitor.&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;* Hold down shift when pressing the Verify / Compile or Upload toolbar&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;buttons to generate verbose output (including command lines).&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;* Moving build (on upload) from the applet/ sub-folder of the sketch&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;to a temporary directory (fixing problems with uploading examples from&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;within the Mac OS X disk image or a Linux application directory).&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;* Fixed bug the prevented the inclusion of .cpp and .h (or .c and .h) files&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;of the same name in a sketch.&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;* Improved the Mac OS X disk image (.dmg): added a shortcut to the&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;Applications folder, a background image with arrow, and new FTDI drivers.&lt;/div&gt;&lt;div style="font-family: arial, sans; font-size: 14px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;b&gt;Links:&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: arial, sans; font-size: 14px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Para download do Arduino 0018 clique no link correspondente ao seu sistema operacional:&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;a href="http://arduino.googlecode.com/files/arduino-0018.zip" style="color: #327eb0; font-family: arial, sans; font-size: 13px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;Windows&lt;/a&gt;&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;a href="http://arduino.googlecode.com/files/arduino-0018.dmg" style="color: #327eb0; font-family: arial, sans; font-size: 13px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;Mac OS X&lt;/a&gt;&lt;br style="font-family: arial, sans; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;a href="http://arduino.googlecode.com/files/arduino-0018.tgz" style="color: #327eb0; font-family: arial, sans; font-size: 13px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;Linux (32bit)&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-3323000538216494974?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/3323000538216494974/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/nova-ide-arduino-0018-liberada-29012010.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3323000538216494974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3323000538216494974'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/02/nova-ide-arduino-0018-liberada-29012010.html' title='Nova IDE Arduino 0018, liberada 29/01/2010.'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-6596808682638089749</id><published>2010-01-27T19:21:00.002-02:00</published><updated>2010-01-27T19:23:20.187-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>PING))) Sensor Ultrasonico para medir distancia</title><content type='html'>&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;PING))) é um sensor ultrasonico, fabricado pela empresa Parallax. Ele detecta a distancia de objetos em frente ao sensor (+/- 3m). Ele trabalha enviando sinais de ultrasom e os recebendo de volta pelo principio do eco quando este encontrar um objeto. O Arduino irá calcular a distancia a partir do sinal enviado pelo PING))), sendo assim a duração do sinal (pulso) é proporcional a sua distancia.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Pode ser facilmente encontrado no ML (Mercado Livre.com).&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Circuito:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;O pino 5V do PING))) é conectado ao pino 5V do Arduino, o pino GND ao GND e o pino SIG (sinal) é conectado ao pino digital 7 do arduino.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #555555; font-family: Verdana, Geneva, Arial, sans-serif; font-size: x-small;"&gt;&lt;span style="font-size: 10px; line-height: 15px;"&gt;&lt;img height="247" src="http://arduino.cc/en/uploads/Tutorial/ping_bb.png" width="400" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #555555; font-family: Verdana, Geneva, Arial, sans-serif; font-size: x-small;"&gt;&lt;span style="font-size: 10px; line-height: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #555555; font-family: Verdana, Geneva, Arial, sans-serif; font-size: x-small;"&gt;&lt;span style="font-size: 10px; line-height: 15px;"&gt;&lt;img height="244" src="http://arduino.cc/en/uploads/Tutorial/ping_schem.png" width="400" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #555555; font-family: Verdana, Geneva, Arial, sans-serif; font-size: x-small;"&gt;&lt;span style="font-size: 10px; line-height: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: Verdana, Geneva, Arial, sans-serif;"&gt;&lt;span style="line-height: 15px;"&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;Sketch:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: Verdana, Geneva, Arial, sans-serif;"&gt;&lt;span style="font-size: small; line-height: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family: Verdana, Geneva, Arial, sans-serif;"&gt;&lt;span style="font-size: small; line-height: 15px;"&gt;&lt;span style="color: #555555; font-size: 10px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, Geneva, Arial, sans-serif;"&gt;&lt;span style="font-size: small; line-height: 15px;"&gt;&lt;span style="color: #555555; font-size: 10px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, Geneva, Arial, sans-serif;"&gt;&lt;span style="font-size: small; line-height: 15px;"&gt;&lt;span style="color: #555555; font-size: 10px;"&gt;&lt;pre&gt;const &lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; pingPin = 7;&lt;br /&gt;&lt;/pre&gt;&lt;div class="vspace"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;span style="color: #cc6600;"&gt;void&lt;/span&gt; &lt;span style="color: #cc6600;"&gt;&lt;strong&gt;setup&lt;/strong&gt;&lt;/span&gt;() {&lt;br /&gt;   &lt;span style="color: #7e7e7e;"&gt;// initialize serial communication:&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #cc6600;"&gt;Serial&lt;/span&gt;.&lt;span style="color: #cc6600;"&gt;begin&lt;/span&gt;(9600);&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;div class="vspace"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;span style="color: #cc6600;"&gt;void&lt;/span&gt; &lt;span style="color: #cc6600;"&gt;&lt;strong&gt;loop&lt;/strong&gt;&lt;/span&gt;()&lt;br /&gt; {&lt;br /&gt;   &lt;span style="color: #7e7e7e;"&gt;// establish variables for duration of the ping, &lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #7e7e7e;"&gt;// and the distance result in inches and centimeters:&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #cc6600;"&gt;long&lt;/span&gt; duration, inches, cm;&lt;br /&gt;&lt;/pre&gt;&lt;div class="vspace"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;span style="color: #7e7e7e;"&gt;// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #7e7e7e;"&gt;// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #cc6600;"&gt;pinMode&lt;/span&gt;(pingPin, &lt;span style="color: #006699;"&gt;OUTPUT&lt;/span&gt;);&lt;br /&gt;   &lt;span style="color: #cc6600;"&gt;digitalWrite&lt;/span&gt;(pingPin, &lt;span style="color: #006699;"&gt;LOW&lt;/span&gt;);&lt;br /&gt;   &lt;span style="color: #cc6600;"&gt;delayMicroseconds&lt;/span&gt;(2);&lt;br /&gt;   &lt;span style="color: #cc6600;"&gt;digitalWrite&lt;/span&gt;(pingPin, &lt;span style="color: #006699;"&gt;HIGH&lt;/span&gt;);&lt;br /&gt;   &lt;span style="color: #cc6600;"&gt;delayMicroseconds&lt;/span&gt;(5);&lt;br /&gt;   &lt;span style="color: #cc6600;"&gt;digitalWrite&lt;/span&gt;(pingPin, &lt;span style="color: #006699;"&gt;LOW&lt;/span&gt;);&lt;br /&gt;&lt;/pre&gt;&lt;div class="vspace"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;span style="color: #7e7e7e;"&gt;// The same pin is used to read the signal from the PING))): a HIGH&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #7e7e7e;"&gt;// pulse whose duration is the time (in microseconds) from the sending&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #7e7e7e;"&gt;// of the ping to the reception of its echo off of an object.&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #cc6600;"&gt;pinMode&lt;/span&gt;(pingPin, &lt;span style="color: #006699;"&gt;INPUT&lt;/span&gt;);&lt;br /&gt;   duration = &lt;span style="color: #cc6600;"&gt;pulseIn&lt;/span&gt;(pingPin, &lt;span style="color: #006699;"&gt;HIGH&lt;/span&gt;);&lt;br /&gt;&lt;/pre&gt;&lt;div class="vspace"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;span style="color: #7e7e7e;"&gt;// convert the time into a distance&lt;/span&gt;&lt;br /&gt;   inches = microsecondsToInches(duration);&lt;br /&gt;   cm = microsecondsToCentimeters(duration);&lt;br /&gt;&lt;/pre&gt;&lt;div class="vspace"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;span style="color: #cc6600;"&gt;Serial&lt;/span&gt;.&lt;span style="color: #cc6600;"&gt;print&lt;/span&gt;(inches);&lt;br /&gt;   &lt;span style="color: #cc6600;"&gt;Serial&lt;/span&gt;.&lt;span style="color: #cc6600;"&gt;print&lt;/span&gt;(&lt;span style="color: #006699;"&gt;"in, "&lt;/span&gt;);&lt;br /&gt;   &lt;span style="color: #cc6600;"&gt;Serial&lt;/span&gt;.&lt;span style="color: #cc6600;"&gt;print&lt;/span&gt;(cm);&lt;br /&gt;   &lt;span style="color: #cc6600;"&gt;Serial&lt;/span&gt;.&lt;span style="color: #cc6600;"&gt;print&lt;/span&gt;(&lt;span style="color: #006699;"&gt;"cm"&lt;/span&gt;);&lt;br /&gt;   &lt;span style="color: #cc6600;"&gt;Serial&lt;/span&gt;.&lt;span style="color: #cc6600;"&gt;println&lt;/span&gt;();&lt;br /&gt;&lt;/pre&gt;&lt;div class="vspace"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;span style="color: #cc6600;"&gt;delay&lt;/span&gt;(100);&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;div class="vspace"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;span style="color: #cc6600;"&gt;long&lt;/span&gt; microsecondsToInches(&lt;span style="color: #cc6600;"&gt;long&lt;/span&gt; microseconds)&lt;br /&gt; {&lt;br /&gt;   &lt;span style="color: #7e7e7e;"&gt;// According to Parallax's datasheet for the PING))), there are&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #7e7e7e;"&gt;// 73.746 microseconds per inch (i.e. sound travels at 1130 feet per&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #7e7e7e;"&gt;// second).  This gives the distance travelled by the ping, outbound&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #7e7e7e;"&gt;// and return, so we divide by 2 to get the distance of the obstacle.&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #7e7e7e;"&gt;// See: &lt;a class="urllink" href="http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf" rel="nofollow" style="border-bottom-color: rgb(187, 187, 187); border-bottom-style: solid; border-bottom-width: 1px; color: #7e7e7e; padding-bottom: 0px; text-decoration: none;"&gt;http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #cc6600;"&gt;return&lt;/span&gt; microseconds / 74 / 2;&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;div class="vspace"&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;span style="color: #cc6600;"&gt;long&lt;/span&gt; microsecondsToCentimeters(&lt;span style="color: #cc6600;"&gt;long&lt;/span&gt; microseconds)&lt;br /&gt; {&lt;br /&gt;   &lt;span style="color: #7e7e7e;"&gt;// The speed of sound is 340 m/s or 29 microseconds per centimeter.&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #7e7e7e;"&gt;// The ping travels out and back, so to find the distance of the&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #7e7e7e;"&gt;// object we take half of the distance travelled.&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #cc6600;"&gt;return&lt;/span&gt; microseconds / 29 / 2;&lt;br /&gt; }&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-6596808682638089749?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/6596808682638089749/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/ping-sensor-ultrasonico-para-medir.html#comment-form' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/6596808682638089749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/6596808682638089749'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/ping-sensor-ultrasonico-para-medir.html' title='PING))) Sensor Ultrasonico para medir distancia'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-831325010179332665</id><published>2010-01-26T16:26:00.000-02:00</published><updated>2010-01-26T16:26:42.019-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Construir um Sensor de proximidade por Infravermelho</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; color: #666666; font-family: Verdana, sans-serif; font-size: small; line-height: 16px;"&gt;&amp;nbsp;&amp;nbsp; Bem, com certeza todos já conhecem os famosos sensores de proximidade por infravermelho da SHARP que custam entre &amp;nbsp;20 e 30 euros lá fora:&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; color: #666666; line-height: 16px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;img alt="" class="bbc_img" height="305" src="http://www.g-robot.com/images/Sharp%20IR%20Distance%20Mesuring%20Sensor-big.jpg" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px;" width="320" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&amp;nbsp;Bom, eu fiz o meu por R$0,00 e vou ensinar como!&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp; Primeiro recolher o material necessário:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Sensor IR&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;- LED IR&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Transistor NPN (usei o BC547)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;- Caneta velha&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp; Como gosto de reciclar, encontrei logo 2 receptores de infravermelhos e alguns transístores em uma lataria velha que guardo aqui em casa. Os receptores são assim:&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;img height="200" src="http://i240.photobucket.com/albums/ff159/super-mascarada/IR.jpg" width="145" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; Estes vão ser os que vocês vão encontrar certamente, mas eles funcionam de maneira diferente. O Maior coloca "0 / LOW" em "out" enquanto não detecta infravermelho mas assim que detecta coloca "1 / HIGH". O pequeno funciona ao contrário. Decidi usar o pequeno pois é o que se adaptava melhor&amp;nbsp;ao que queria fazer.&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Com um tubo de caneta opaco, corte-o em duas partes com 5cm cada uma:&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;img height="240" src="http://i240.photobucket.com/albums/ff159/super-mascarada/SNC00105.jpg" width="320" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;Com a pistola de cola quente, colei o Sensor IR a um lado dos tubos:&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;img alt="" class="bbc_img" height="240" src="http://i240.photobucket.com/albums/ff159/super-mascarada/SNC00106.jpg" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px;" width="320" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Fiz o mesmo com o outro tubo para o LED e em seguida colei os tubos um ao lado do outro:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;img alt="" class="bbc_img" height="240" src="http://i240.photobucket.com/albums/ff159/super-mascarada/SNC00107.jpg" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px;" width="320" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; color: #666666; font-family: Verdana, sans-serif; font-size: small; line-height: 16px;"&gt;&amp;nbsp;&amp;nbsp;Vamos agora às ligações. As ligações são bastante simples, o sensor tem 3 pinos, 2 para alimentação e o outro pino que ou tem o valor lógico 1 ou 0.&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; color: #666666; line-height: 16px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&amp;nbsp;&amp;nbsp; O sensor tem uma maneira engraçada de funcionar. O que estes sensores fazem é detectar variações de luz, por exemplo, quando pressionamos um botão em um controle remoto, o LED dele pisca com uma determinada frequência (+/- 33KHz) e o que o sensor da TV ou video detecta é esta variação. Estes sensores não detectam apenas, única e exclusivamente luz infravermelha, eles "apanham" tudo (são um pouco mais sensiveis ao IR claro). Se nós acendermos um LED IR em frente a este sensor veremos ele detectar qualquer coisa por um breve momento&amp;nbsp; e a estabilizar logo em seguida, isto porque ele internamente "satura" a esse comprimento de onda. É por isso que quando estamos em casa, de luzes ligadas, conseguimos mudar de canal com o nosso controle remoto.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: #666666;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; line-height: 16px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: #666666;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; line-height: 16px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;img height="184" src="http://i240.photobucket.com/albums/ff159/super-mascarada/ligacoes-1.jpg" width="320" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: #666666;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; line-height: 16px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: #666666;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; line-height: 16px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;Para ligar o LED há um pequeno senão, como o valor no pino varia tão rápido, se ligarmos o LED direto, este parece que nem acende e sim desta forma nem precisamos de uma resitência. É aqui que entra o transístor, com ele conseguimos ter o LED a brilhar a todo o seu explendor e a frequência desejada!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; color: #666666; font-family: Verdana, sans-serif; font-size: small; line-height: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: #666666;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; font-family: Verdana, sans-serif; font-size: small; line-height: 16px;"&gt;Fica tudo mais ou menos assim:&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; line-height: 16px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;img alt="" class="bbc_img" height="176" src="http://i240.photobucket.com/albums/ff159/super-mascarada/liga.jpg" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px;" width="200" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&amp;nbsp;&amp;nbsp; É isto que temos de fazer então, colocar o LED IV a piscar (a qualquer valor na frequência dos KHz) e ver se o sensor detecta qualquer coisa!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; Para colocar o LED a piscar decidi criar uma interrupção com um timer, de modo a que de cada vez que esta ocorresse acendia ou apagava o LED. Na função&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;em style="font-style: italic;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;loop&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;fico à espera que o sensor detecte alguma coisa. Simples não é?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: #666666;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; line-height: 16px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: #666666;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; line-height: 16px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;Sketch:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: #666666; font-family: Tahoma, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; font-size: 12px; line-height: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: #666666; font-family: Tahoma, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; font-size: 12px; line-height: 16px;"&gt;&lt;span class="Apple-style-span" style="color: #3a3a3a; font-family: 'courier new', 'times new roman', monospace; font-size: x-small; line-height: 13px; white-space: pre;"&gt;#include &lt;mstimer2.h&gt;&lt;br /&gt;#define irx 2&amp;nbsp; &amp;nbsp;// Sensor IR no pin digital 2&lt;br /&gt;&lt;br /&gt;static boolean output = HIGH;&amp;nbsp; // Variável para defenir o estado do LED de infravermelhos, é estática para ser usada durante a interrupção&lt;br /&gt;&lt;br /&gt;void setup(){&lt;br /&gt;&amp;nbsp; pinMode(irx, INPUT);&amp;nbsp; &amp;nbsp; &amp;nbsp;// Pin onde está o LED infravermelhos é pin output&lt;br /&gt;&amp;nbsp; Serial.begin(9600);&amp;nbsp; &amp;nbsp; &amp;nbsp; // Iniciar comunicação Serial com o computador...&lt;br /&gt;&amp;nbsp; MsTimer2::set(5, flash); // Defenir intrrupções de 5 em 5 ms e durante a interrupção é chamada a função flash&lt;br /&gt;&amp;nbsp; MsTimer2::start();&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Iniciar interrupções&lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;void loop(){&lt;br /&gt;&amp;nbsp; while(digitalRead(irx));&amp;nbsp; &amp;nbsp;// Enquanto não houver nada no Sensor não sai daqui, o sensor coloca 1 quando n detecta nada e passa a 0 qd detecta algo&lt;br /&gt;&amp;nbsp; Serial.println("ICEBERG!"); // Oi.. Apanhou qualquer coisa... OH NÂO É UM ICEBERG... OH GOD, THE PAIN, CAN YOU FEEL THE PAIN?&lt;br /&gt;&amp;nbsp; // MAYDAY MAYDAY!&lt;br /&gt;&amp;nbsp; // - Alô diz iz German Cost Guard, can we help you? (Sotaque alemão)&lt;br /&gt;&amp;nbsp; // YES, YES! We're SINKING!&lt;br /&gt;&amp;nbsp; // - Okay so what are you sinking (thinking) about? (ahha XD)&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void flash() {&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Função chamda durante a interrupção&lt;br /&gt;&amp;nbsp; digitalWrite(12, output);&amp;nbsp; // Anceder ou apagar o LED IR&lt;br /&gt;&amp;nbsp; output = !output;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Alterar o output...&lt;br /&gt;}&lt;/mstimer2.h&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: #3a3a3a; font-family: 'courier new', 'times new roman', monospace;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; font-size: x-small; line-height: 13px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-831325010179332665?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/831325010179332665/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/construir-um-sensor-de-proximidade-por.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/831325010179332665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/831325010179332665'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/construir-um-sensor-de-proximidade-por.html' title='Construir um Sensor de proximidade por Infravermelho'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-2744082878146298554</id><published>2010-01-13T19:59:00.000-02:00</published><updated>2010-01-13T19:59:59.938-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>Criando Caracteres no LCD</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Já precisou usar uma seta para direita no LCD em seu trabalho? ou para esquerda? ou para baixo/cima? Tentou upar códigos e mais códigos e nada? Aqui esta a solução para você...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Com este software online você consegue criar qualquer caractere em uma matriz de 5 x 8 quadrados.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://icontexto.com/charactercreator/"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Link para o software criador de caracteres&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Exemplo de Sketch:&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: georgia, verdana, serif; font-size: 14px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="-webkit-border-bottom-left-radius: 8px 8px; -webkit-border-bottom-right-radius: 8px 8px; -webkit-border-top-left-radius: 8px 8px; -webkit-border-top-right-radius: 8px 8px; background-color: white; color: #666666; font-size: 9pt; padding-bottom: 20px; padding-left: 20px; padding-right: 20px; padding-top: 20px;"&gt;#include  &lt;liquidcrystal.h&gt; //inicia biblioteca LCD&lt;br /&gt;&lt;br /&gt;LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //configura pinos &lt;br /&gt;&lt;br /&gt;byte newChar[8] = {&lt;br /&gt; B00100,      //vetor aonde é criado os caracteres&lt;br /&gt; B00100,      //no caso em questao, 1 = escrito&lt;br /&gt; B00100,      //0 = apagado&lt;br /&gt; B00100,&lt;br /&gt; B00100,&lt;br /&gt; B11111,&lt;br /&gt; B01110,&lt;br /&gt; B00100&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;void setup() {&lt;br /&gt; lcd.createChar(0, newChar); //Chama função para criar caractere&lt;br /&gt; lcd.begin(16, 2); //inicia LCD&lt;br /&gt; lcd.write(0); //escreve LCD&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void loop() {}&lt;/liquidcrystal.h&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-2744082878146298554?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/2744082878146298554/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/criando-caracteres-no-lcd.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/2744082878146298554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/2744082878146298554'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/criando-caracteres-no-lcd.html' title='Criando Caracteres no LCD'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-3897698855909965134</id><published>2010-01-13T19:39:00.004-02:00</published><updated>2010-01-13T19:41:14.153-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Comunicação Serial Arduino &lt;&gt; Host</title><content type='html'>&lt;span style="font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Helvetica, Sans, FreeSans, Jamrul, Garuda, Kalimati; font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;A conexão serial vai ser usada para fazer a ponte com o computador em aplicações software-hardware e também para subir novos códigos que podem ser compilados usando as funções e tutoriais compatíveis com arduino.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Para isto você vai precisar de um cabo serial preparado para trocar dados com o microprocessador, que pode ser feito como o desenho do esquema abaixo, com um plug db9 fêmea (conhecido como cabo serial).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://artesanato.devolts.org/wp-content/uploads/2009/03/db9_cmos.png" style="color: #2d83d5; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;&lt;img alt="db9_cmos" class="aligncenter size-full wp-image-310" height="400" src="http://artesanato.devolts.org/wp-content/uploads/2009/03/db9_cmos.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;" title="db9_cmos" width="322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Feito o cabo agora basta fazer as conexões usando um chip inversor de polaridade para as portas Rx Tx (porta lógica NOT). Estamos fazendo nesta figura com um cmos4069, chip facilmente encontrado e que não deve custar mais que alguns centavos.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;A comunicação Rx Tx é a ponte para conectar seu microprocesador com outros softwares ou hardwares em tempo real, utilizando este protocolo. Você poderia também fazer esta comunicação entre outro microprocessador, teclados MIDI, ou dispositivos USB, só pra ter uma idéia.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Mas vamos usar aqui esta técnica por também ja resolver nosso problema de precisar reprogramar nosso projeto.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://artesanato.devolts.org/wp-content/uploads/2009/03/serialproto600.png" style="-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: #2d83d5; background-image: initial; background-position: initial initial; background-repeat: initial; color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="serialproto600" class="aligncenter size-full wp-image-304" height="400" src="http://artesanato.devolts.org/wp-content/uploads/2009/03/serialproto600.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;" title="serialproto600" width="325" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Feitas todas conexões você já pode acessar o seu software da IDE do arduino e selecionar a conexão ttyS0 para a comunicação serial direta. Se você estiver utilizando um adaptador serial-usb conectado no db9 basta delecionar a conexão ttyUSB0.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-3897698855909965134?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/3897698855909965134/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/comunicacao-serial-arduino-host.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3897698855909965134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3897698855909965134'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/comunicacao-serial-arduino-host.html' title='Comunicação Serial Arduino &lt;&gt; Host'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-8911219246736494790</id><published>2010-01-13T19:34:00.000-02:00</published><updated>2010-01-13T19:34:51.853-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Gravando o BootLoader</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Helvetica, Sans, FreeSans, Jamrul, Garuda, Kalimati; font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;O primeiro passo a partir de que você tem um atmega8 ou amega168 virgem é preparar um circuito para gravação do “bootloader” do arduino.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;O bootloader ( numa analogia bem tosca) é como se fosse a “bios” do seu computador - ele é o programa que vai ficar em loop no seu microprocessador esperando comandos para executar dentro de ciclos de tempo: como abrir e fechar portas analógicas e digitais, receber ou enviar pulsos para estas e fazer comunicação com outro hardware pelo protocolo serial.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;O software que está pronto para compilar estas funções e subir estes códigos “de arduino” no seu microprocessador pode ser encontrado&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;neste&amp;nbsp;&lt;a href="http://arduino.cc/en/Main/Software"&gt;LINK&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Mas antes que você comece a usar as funcões “de arduino” em seu microprocessador atmel, você precisa subir este pequeno programa. Isso só pode ser feito com um gravador específico. O gravador que nós vamos utilizar é o mais simples possível, feito com alguns resistores e um cabo de porta paralela.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;A pinagem utilizada é a que segue neste esquema:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://artesanato.devolts.org/wp-content/uploads/2009/03/paraleloduino.png" style="color: #2d83d5; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;&lt;img alt="paraleloduino" class="aligncenter size-full wp-image-239" height="242" src="http://artesanato.devolts.org/wp-content/uploads/2009/03/paraleloduino.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;" title="paraleloduino" width="472" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Abaixo um exemplo em foto de como ficará seu cabo (atenção para a comparação com o esquema, pois o desenho abaixo está de ponta cabeça em relação a este)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;a href="http://artesanato.devolts.org/wp-content/uploads/2009/03/paralela.png" style="color: #2d83d5; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;&lt;img alt="paralela" class="aligncenter size-full wp-image-252" height="401" src="http://artesanato.devolts.org/wp-content/uploads/2009/03/paralela.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;" title="paralela" width="600" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Em seguida você deve preparar uma protoboard para receeber o chip e aplicar as voltagens do gravador. Perceba que o esquema da protoboard é exatamente o mesmo que depois iráser usado para seu arduino artesanal no dia a dia, apenas estamos dando outro uso para ele, baseado na configuração virgem do microprocessador.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;A pinagem (que será conectada no cabo paralelo feito anteriormente) vai funcionar da seguinte maneira:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://artesanato.devolts.org/wp-content/uploads/2009/03/toscolino_gravador600.png" style="color: #2d83d5; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;&lt;img alt="toscolino_gravador600" class="aligncenter size-full wp-image-248" height="610" src="http://artesanato.devolts.org/wp-content/uploads/2009/03/toscolino_gravador600.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;" title="toscolino_gravador600" width="600" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Agora se tudo estiver correto, basta iniciar o software de compilação do arduino (arduino IDE) e escolher o microprocessador atmega8 ou atmega168. Utilize as versões “NG older” para este esquemático que dispomos neste tutorial.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://artesanato.devolts.org/wp-content/uploads/2009/03/escolheprocessador.png" style="color: #2d83d5; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: underline;"&gt;&lt;img alt="escolheprocessador" class="aligncenter size-full wp-image-354" height="600" src="http://artesanato.devolts.org/wp-content/uploads/2009/03/escolheprocessador.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;" title="escolheprocessador" width="500" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Em seguida basta escolher o gravador “Parallel Programmer”:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://artesanato.devolts.org/wp-content/uploads/2009/03/softwaregravador.png" style="-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: #2d83d5; background-image: initial; background-position: initial initial; background-repeat: initial; color: white; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;img alt="softwaregravador" class="aligncenter size-full wp-image-356" height="600" src="http://artesanato.devolts.org/wp-content/uploads/2009/03/softwaregravador.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: block; margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;" title="softwaregravador" width="500" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Se tudo der certo no final seu console vai mostrar “Done Uploading”.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.4em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;A partir daí vocẽ ja pode gravar códigos de arduino,&amp;nbsp;u&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;tilizando a conexão serial!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-8911219246736494790?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/8911219246736494790/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/gravando-o-bootloader.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/8911219246736494790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/8911219246736494790'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/gravando-o-bootloader.html' title='Gravando o BootLoader'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-1627153159837086258</id><published>2010-01-13T19:29:00.000-02:00</published><updated>2010-01-13T19:29:02.839-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Pinos Arduino's</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Para iniciarmos a montagem do Arduino em uma ProtoBoard, necessitamos seu circuito e devidos pinos:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;img alt="toscolino_pinagem600" src="http://artesanato.devolts.org/wp-content/uploads/2009/03/toscolino_pinagem600.png" /&gt;&lt;br /&gt;&lt;img alt="toscolino_pinagem_close" src="http://artesanato.devolts.org/wp-content/uploads/2009/03/toscolino_pinagem_close.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-1627153159837086258?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/1627153159837086258/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/pinos-arduinos.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/1627153159837086258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/1627153159837086258'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/pinos-arduinos.html' title='Pinos Arduino&apos;s'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-6357725578955977083</id><published>2010-01-11T20:37:00.000-02:00</published><updated>2010-01-11T20:37:26.825-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Testador de Cristais</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Quando vou trabalhar com Microcontroladores tenho sempre a mesma dificuldade! Encontrar algum cristal ressonante que esteja funcionando no meio de tanta tralha velha que ainda guardo no meu quarto.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Então por um passeio tipico pela internet, encontrei um circuito muito bom para testar e verificar se o cristal está ou não em ótimas condições de trabalho.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;Circuito:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://www.freebr.com/imagem5/cristal.gif" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;Circuito Testa Cristal&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;R1 = 100K&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;table border="0" bordercolor="#111111" cellpadding="0" cellspacing="0" id="AutoNumber19" style="text-align: justify;"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;R2 = 2K2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border="0" bordercolor="#111111" cellpadding="0" cellspacing="0" id="AutoNumber19" style="text-align: justify;"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;R3 = 330 OHM&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border="0" bordercolor="#111111" cellpadding="0" cellspacing="0" id="AutoNumber19" style="text-align: justify;"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Q1, Q2 = 2N3563&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border="0" bordercolor="#111111" cellpadding="0" cellspacing="0" id="AutoNumber19" style="text-align: justify;"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;D1 = 1N4148&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border="0" bordercolor="#111111" cellpadding="0" cellspacing="0" id="AutoNumber19" style="text-align: justify;"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;C1, C2 = 220pF&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border="0" bordercolor="#111111" cellpadding="0" cellspacing="0" id="AutoNumber19" style="text-align: justify;"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;C3 = 100pF&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border="0" bordercolor="#111111" cellpadding="0" cellspacing="0" id="AutoNumber19" style="text-align: justify;"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;C4 = 0.1uF (100 nF)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border="0" bordercolor="#111111" cellpadding="0" cellspacing="0" id="AutoNumber19" style="text-align: justify;"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;D2 = LED VERMELHO (ULTRA BRILHO)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Materiais Diversos: Garras Jacaré, Clip para bateria de 9V, Fios, Solda, etc...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O transistor Q1, um 2N3563 e seus associados formam um circuito oscilador que sómente irá oscilar se um Cristal bom estiver conectado nas garras do teste. A saída do oscilador, é retificada pelo diodo 1N4148 e filtrada por C3, um capacitor de 100pF. A voltagem positiva sobre o capacitor é aplicada à base de Q2, outro 2N3563, causando sua condução. Quando isso acontece, a corrente flui através do Led. Se o cristal estiver bom, o Led irá indicar. Também poderá ser utilizado os transistores NTE123AP, &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;PN100 ou 2N3904.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;table border="0" bordercolor="#111111" cellpadding="0" cellspacing="0" id="AutoNumber19" style="border-collapse: collapse; text-align: left;"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br class="Apple-interchange-newline" /&gt;&lt;table border="0" bordercolor="#111111" cellpadding="0" cellspacing="0" id="AutoNumber19" style="border-collapse: collapse; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td height="13" style="font-family: Arial, Helvetica, sans-serif; font-size: 10px; text-align: justify;" width="50%"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-6357725578955977083?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/6357725578955977083/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/testador-de-cristais.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/6357725578955977083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/6357725578955977083'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/testador-de-cristais.html' title='Testador de Cristais'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-575347226049400153</id><published>2010-01-11T17:45:00.000-02:00</published><updated>2010-01-11T17:45:05.753-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>E que tal falar um pouco mais sobre EEPROMs?</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Q&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;uase todos devem saber o que são e o que acontece quando começamos a ficar sem espaço no nosso microcontrolador e temos a necessidade de migrar dados, ou então quando queremos fazer muitos registros e os míseros bytes de memória que o nosso microcontrolador tem não são suficientes.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Tahoma, sans-serif; font-size: 12px; line-height: 16px;"&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;img alt="" class="bbc_img" src="http://www.sparkfun.com/commerce/images/products/EEPROM.jpg" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px;" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;EEPROM 24LC256&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Pois bem as EEPROMs são mesmo nossas amigas e então as i2c são tão fáceis de implementar que ao fim de algum tempo nem nos lembramos que as temos na protoboard. Estas ocupam apenas os pinos 4 e 5 analógicos do Arduino, ocupando um endereço no BUS (leia post I2C), ou seja, podemos continuar com todos os outros dispositivos i2c que lá tinhamos ligados anteriormente.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A EEPROM que vou usar neste tutorial é uma 24LC256 da Microchip. Esta EEPROM tem 32K endereços a 8 bits&amp;nbsp; fazendo dela uma EEPROM com 256 Kbits memória!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A Atmel, assim como outras marcas, também têm estas EEPROMS. A da Atmel é a 24C256, mas as memórias da Microchip são bem melhores! As da Microchip aguentam os dados por mais de 200 anos, na Atmel é só 40; As da Microchip vão para mais de um milhão de ciclos escrita, as da Atmel só vão para 100 mil. A Microchip dá 3 pinos para endereço, a Atmel só dá dois.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;As ligações são estas:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;img alt="" class="bbc_img" src="http://i240.photobucket.com/albums/ff159/super-mascarada/Untitled.jpg" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px;" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Os pinos A0 a A2 servem para indicar o endereço da EEPROM no bus i2c, se estiverem todos ligados ao GND o endereço no Arduino é 0x50. Assim, conseguimos ter até 8 EEPROMS no mesmo bus fazendo 2Mbit de memória!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O pino WP é o pino que indica se a EEPROM está protegida contra escita, se ligarem este pino a VCC não podem escrever na EEPROM e se o ligarem ao GND já podem, é como o botão nos cartões de memória.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Depois de ligar isto tudo vamos lá testar! Para o teste liguem o WP a GND.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;Sketch:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;#include &lt;wire.h&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Para a EEPROM 24LC256, assim chamamos as bibliotecas i2c&lt;/wire.h&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;#define eeprom 0x50 &amp;nbsp; &amp;nbsp; &amp;nbsp; // endereço da eeprom já shiftado&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;void setup(void){&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Wire.begin(); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Iniciar ligações i2c&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Serial.begin(9600); &amp;nbsp; &amp;nbsp; // Assim podemos ver qualquer coisa no console serial&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;unsigned int address = 0; &amp;nbsp;//endereçamento a 2 bytes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Serial.println("A escrever o melhor numero de sempre nos 10 primeiros bytes!");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;for(address = 0; address&amp;lt;10; address++)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;writeEEPROM(eeprom, address, '3'); &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Serial.println("Vamos ler se esta tudo ok, deve ver 33, 33, 33, 33... 10x 33");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;for(address = 0; address&amp;lt;10; address++) {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Serial.print(readEEPROM(eeprom, address), HEX);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Serial.print(", ");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;void loop(){}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;//-------Rotinas para EEPROMS i2c por Daniel Gonçalves------&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;// Podem usar estas rotinas à vontade para projectos particulares.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;// Para fins comerciais entrar em contato com we_real_cool@hotmail.com&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;void writeEEPROM(int deviceaddress, unsigned int eeaddress, byte data ) {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Wire.beginTransmission(deviceaddress);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Wire.send((int)(eeaddress &amp;gt;&amp;gt; 8)); &amp;nbsp; // MSB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Wire.send((int)(eeaddress &amp;amp; 0xFF)); // LSB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Wire.send(data);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Wire.endTransmission();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;byte readEEPROM(int deviceaddress, unsigned int eeaddress ) {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;byte rdata = 0xFF;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Wire.beginTransmission(deviceaddress);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Wire.send((int)(eeaddress &amp;gt;&amp;gt; 8)); &amp;nbsp; // MSB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Wire.send((int)(eeaddress &amp;amp; 0xFF)); // LSB&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Wire.endTransmission();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Wire.requestFrom(deviceaddress,1);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;if (Wire.available()) rdata = Wire.receive();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;return rdata;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-575347226049400153?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/575347226049400153/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/e-que-tal-falar-um-pouco-mais-sobre.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/575347226049400153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/575347226049400153'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/e-que-tal-falar-um-pouco-mais-sobre.html' title='E que tal falar um pouco mais sobre EEPROMs?'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-4472110358528906826</id><published>2010-01-11T17:30:00.000-02:00</published><updated>2010-01-11T17:30:56.202-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>Biblioteca EEPROM</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O microcontrolador Arduino tem 512bytes de EEPROM (memória na qual os valores ficam armazenados mesmo sem alimentação) disponível para uso. Esta biblioteca proporciona a leitura e a escrita desses bytes.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A função &lt;b&gt;EEPROM.write(address, value)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Escreve um byte na EEPROM.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;adress&lt;/b&gt;: O local para escrever (endereço), de 0 até 511 (tipo int)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;value&lt;/b&gt;: o valor para escrever, de 0 até 255 (tipo byte (binário))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O datasheet do Atmega (uControlador Arduino) diz que a sua EEPROM tem uma vida útil de &lt;i&gt;100.000 ciclos de leitura/escrita&lt;/i&gt;, o que significa que 100.000 é o limite para você poder obter dados desta memória. Tenha isso em mente para projetos que demandem grande expectativa de via útil e muita movimentação de dados.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Também especifica que um ciclo de escrita demora 3,3ms para ser completado, sendo assim não precisa criar um delay para isto, porém sempre tenha cuidado com manipulação muito rápida de dados.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;Exemplo:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;#include &lt;eeprom.h&gt;&lt;/eeprom.h&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;void setup()&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;{&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;for (int i = 0; i &amp;lt; 512; i++)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;EEPROM.write(i, i);&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;}&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;void loop()&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;{&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;}&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A função &lt;b&gt;EEPROM.read(address)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Lê um byte da EEPROM, sendo que os endereços que constarem como nulos (que nunca tenham sido gravados), irão assumir 255 como valor.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;address&lt;/b&gt;: o local a ser lido, de 0 até 511 (tipo int)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Retorna o &lt;i&gt;valor gravado&lt;/i&gt; no endereço especificado.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;Exemplo:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;#include &lt;eeprom.h&gt;&lt;/eeprom.h&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;int a = 0;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;int value;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;void setup()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Serial.begin(9600);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;void loop()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;value = EEPROM.read(a);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Serial.print(a);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Serial.print("\t");&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Serial.print(value);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;Serial.println();&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;a = a + 1;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;if (a == 512)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;a = 0;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;delay(500);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-4472110358528906826?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/4472110358528906826/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/biblioteca-eeprom.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/4472110358528906826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/4472110358528906826'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/biblioteca-eeprom.html' title='Biblioteca EEPROM'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-5154808619371563618</id><published>2010-01-11T16:27:00.000-02:00</published><updated>2010-01-11T16:27:39.763-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Teoria'/><title type='text'>Protocolo I2C, uma breve descrição!</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Tahoma, sans-serif; font-size: 12px; line-height: 16px;"&gt;&lt;strong style="font-weight: bold;"&gt;Protocolo I²C&lt;/strong&gt;&amp;nbsp;ou I2C&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;O protocolo I²C foi desenvolvido pela Philips em 1996, e veio para ficar pois este permite uma boa modelarização das comunicações, baixando o tempo e custo de desenvolvimento de dispositivos, assim como uma grande flexibilidade no funcionamento, consumindo pouca corrente, e sendo bastante imune a ruídos.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Deixemos-nos de teorias pois não é o objectivo deste artigo, existe muita informação sobre este barramento e por isso vamos tentar apenas criar aqui um local de fácil compreensão e consulta do protocolo.&lt;/div&gt;&lt;br /&gt;&lt;strong style="font-weight: bold;"&gt;Começamos então pelo modo Standard, ou Single Master.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;O barramento é conhecido por utilizar apenas dois fios para comunicação entre vários dispositivos electrónicos (128 slaves creio eu devido à estrutura que iremos analisar mais à frente.), mas contudo este necessita de 4 fios, dois de alimentação, e os dois fios de dados.&lt;/div&gt;&lt;br /&gt;Estes são então:&lt;br /&gt;&lt;br /&gt;&lt;ul class="bbc_list" style="list-style-type: decimal;"&gt;&lt;li&gt;&lt;strong style="font-weight: bold;"&gt;VCC&lt;/strong&gt;&amp;nbsp;(normalmente +5V)&lt;/li&gt;&lt;li&gt;&lt;strong style="font-weight: bold;"&gt;GND&amp;nbsp;&lt;/strong&gt;(massa comum entre os equipamentos, muito importante para que quando os dispositivos queiram dizer zero, o consigam dizer de forma perceptível para todas as outras máquinas)&lt;/li&gt;&lt;li&gt;&lt;strong style="font-weight: bold;"&gt;SDA&lt;/strong&gt;&amp;nbsp;(&lt;strong style="font-weight: bold;"&gt;S&lt;/strong&gt;erial&amp;nbsp;&lt;strong style="font-weight: bold;"&gt;DA&lt;/strong&gt;ta Line)&lt;/li&gt;&lt;li&gt;&lt;strong style="font-weight: bold;"&gt;SCL&lt;/strong&gt;&amp;nbsp;(&lt;strong style="font-weight: bold;"&gt;S&lt;/strong&gt;erial&amp;nbsp;&lt;strong style="font-weight: bold;"&gt;CL&lt;/strong&gt;ock)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong style="font-weight: bold;"&gt;No esquema a baixo pode-se facilmente identificar a estrutura da rede:&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;&lt;img alt="" class="bbc_img" src="http://www.lusorobotica.com/img/artigos/i2c_esquema.jpg" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px;" /&gt;&lt;br /&gt;&lt;br /&gt;R --&amp;gt; pullup opcional, raramente são mencionadas mas devem de se usar entre 4KOhm a 10KOhm.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Assim, como na maioria dos barramentos, meter um fio a VCC (quer este seja a 5V ou até mesmo a 3,3V, pois testei a utilização de 3,3V para este barramento e funciona sem quaisquer problemas, mesmo com um master a comunicar e a ler entre 0V~5V) significa mete-lo a HIGH, ou a estado binário 1 (um).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;E como é de calcular, se os estados são binários, serão o oposto ou seja meter um fio a GND (0V quer para um circuito entre 0V~5V quer para entre 0V~3,3V) significa mete-lo a LOW, ou estado 0 (zero).&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong style="font-weight: bold;"&gt;Assim passo a mostrar o esquema de comunicações:&lt;/strong&gt;&lt;br /&gt;&lt;img alt="" class="bbc_img" src="http://www.lusorobotica.com/img/artigos/i2c_proto.jpg" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong style="font-weight: bold;"&gt;Passando então a explicar:&lt;/strong&gt;&lt;br /&gt;&lt;ul class="bbc_list" style="list-style-type: decimal;"&gt;&lt;li&gt;Start bit é gerado pelo Master&lt;/li&gt;&lt;li&gt;7 bits de endereço são dados pelo master para dizer com que slave pretende comunicar&lt;/li&gt;&lt;li&gt;1 bit indica se existe intenção de escrita ou de leitura nesse dispositivo&lt;/li&gt;&lt;li&gt;slave após se ter identificado com aquele endereço diz que tomou conhecimento&lt;/li&gt;&lt;li&gt;1 byte (8 bits) de dados são mandados para o slave ou pelo salve dependendo da intenção anterior de R/W&lt;/li&gt;&lt;li&gt;após cada thread de dados um ack bit é dado pelo outro dispositivo para dizer que recebeu o byte inteiro&lt;/li&gt;&lt;li&gt;a tarefa repete-se desde o ponto 5 até que seja dado o stop bit representado por um&amp;nbsp;&lt;strong style="font-weight: bold;"&gt;F&lt;/strong&gt;im no esquema&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong style="font-weight: bold;"&gt;Bits de start e de stop:&lt;/strong&gt;&lt;br /&gt;&lt;img alt="" class="bbc_img" src="http://www.lusorobotica.com/img/artigos/i2c_start_stop.jpg" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong style="font-weight: bold;"&gt;Outras condições de estado:&lt;/strong&gt;&lt;br /&gt;&lt;ul class="bbc_list"&gt;&lt;li style="text-align: justify;"&gt;SDA só pode variar com SCL a LOW, e quando SCL subir SDA tem que se manter estável até que SCL desça. Qualquer variação de SDA enquanto SCL esta a HIGH será interpretado como um START ou STOP bit.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;O dispositivo que está endereçado naquele momento ou acaba de ficar endereçado deve de responder com um acknowledge bit após cada byte transmitido. O master gerará um SCL extra após cada byte, ao qual o slave deverá fazer pull down do SDA para que o master saiba que o byte foi bem recebido.&lt;/li&gt;&lt;/ul&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Tahoma, sans-serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 16px;"&gt;Disponível em:&amp;nbsp;&lt;a href="http://lusorobotica.com/index.php/topic,33.0.html"&gt;Protocolo I2C&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-5154808619371563618?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/5154808619371563618/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/protocolo-i2c-uma-breve-descricao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/5154808619371563618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/5154808619371563618'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/protocolo-i2c-uma-breve-descricao.html' title='Protocolo I2C, uma breve descrição!'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-938487729715946948</id><published>2010-01-11T14:18:00.000-02:00</published><updated>2010-01-11T14:18:41.896-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blá blá blá'/><title type='text'></title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_t9dpDgIUVLw/S0tPCOfeudI/AAAAAAAAAEE/05cPHK0WBGc/s1600-h/500x_theinternetisbig.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_t9dpDgIUVLw/S0tPCOfeudI/AAAAAAAAAEE/05cPHK0WBGc/s640/500x_theinternetisbig.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Coisas interessantes que acontecem na Internet, todos os dias.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Disponivel em:&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="-webkit-text-decorations-in-effect: underline; color: #551a8b;"&gt;&lt;a href="http://blog.danielandrade.net/"&gt;DanielAndrade&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-938487729715946948?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/938487729715946948/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/coisas-interessantes-que-acontecem-na.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/938487729715946948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/938487729715946948'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/coisas-interessantes-que-acontecem-na.html' title=''/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_t9dpDgIUVLw/S0tPCOfeudI/AAAAAAAAAEE/05cPHK0WBGc/s72-c/500x_theinternetisbig.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-5334714393723011047</id><published>2010-01-08T16:37:00.002-02:00</published><updated>2010-01-08T16:37:38.509-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>analogRead()</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;L&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;ê o valor de um pino analógico especificado. A placa Arduino contém um conversor analógico-digital de 10 bits com 6 canais (8 canais no Mini e no Nano). Com isto ele pode mapear voltagens de entrada entre 0 e 5 volts para valores inteiros entre 0 e 1023. Isto permite uma resolução entre leituras de 5 volts / 1024 unidades ou 0,0049 volts (4.9 mV) por unidade.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;São necessários aproximadamente 100&amp;nbsp;μs (0.0001 s) para ler uma entrada analógica, portanto a velocidade máxima de leitura é de aproximadamente 10.000 vezes por segundo.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Sintaxe&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;analogRead(pin)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Parâmetros&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;pin: o número do pino analógico que se deseja ler (0 a 5 na maioria das placas, 0 ta 7 no Mini e no Nano)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Retorno&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int (0 a 1023)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Note&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Se o pino analógico não estiver conectado a nada o valor de retorno do analogRead() vai variar de acordo com uma grande quantidade de fatores (e.g. os valores de outras entradas analógicas, a distância de sua mão à placa, etc.). Na prática é um valor aleatório.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre style="font-size: 1.25em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int analogPin = 3;     // perna do meio de um potenciómetro conectada ao pino analógico 3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;                       // pernas externas conectadas ao terra e ao +5V&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int val = 0;           // variável para armazenar o valor lido&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;void setup()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;  Serial.begin(9600);          //  inicial a comunicação serial&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;void loop()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;  val = analogRead(analogPin);    // lê o pino de entrada&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;  Serial.println(val);             // informa o valor lido &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-5334714393723011047?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/5334714393723011047/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/analogread.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/5334714393723011047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/5334714393723011047'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/analogread.html' title='analogRead()'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-2608547038736353014</id><published>2010-01-08T16:36:00.002-02:00</published><updated>2010-01-08T16:38:00.731-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>analogWrite()</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Escreve um valor analógico (&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;onda PWM&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;) em um pino. Pode ser usado para acender um LED variando o brilho ou girar um motor a velocidade variável. Depois de realizar um&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;analogWrite()&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, o pino vai gerar uma onda quadrada estável com o ciclo de rendimento especificado até que o próximo&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;analogWrite()&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;seja realizado (ou que seja realizado um&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;digitalRead()&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;ou&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;digitalWrite()&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;no mesmo pino). A freqüência do sinal PWM é de aproximadamente 490Hz.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Nas novas placas Arduino (incluindo o Mini e o BT) com o chip ATmega168 esta função é eficiente nos pinos 3,5,6,9,10 e 11. Placas Arduino mais antigas com um ATmega8 suportam o analogWrite() apenas nos pinos 9,10 e 11.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Sintaxe&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;analogWrite(pin, valor)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Parâmetros&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;pin: o pino no qual se deseja escrever&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;valor: o rendimento do ciclo: entre 0 (sempre desligado) e 255 (sempre ligado).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Retorno&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;nenhum&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Notas e problemas conhecidos&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Não é necessário realizar um pinMode() para pré-determinar o comportamento do pino como saída antes de realizar um analogWrite().&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;As saídas PWM geradas pelos pinos 5 e 6 terão rendimento de ciclo acima do esperado. Isto se deve às interações com as funções millis() e delay(), que compartilham o mesmo temporizador interno usado para gerar as saídas PWM.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Torna o brilho de um LED proporcional ao valor lido em um potenciómetro.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;int ledPin = 9;      // LED conectado ao pino digital 9&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;div style="text-align: justify;"&gt;int analogPin = 3;   // potentiómetro conectado ao pino analógico 3&lt;/div&gt;&lt;div style="text-align: justify;"&gt;int val = 0;         // variável para armazenar o valor lido&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;void setup()&lt;/div&gt;&lt;div style="text-align: justify;"&gt;{&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  pinMode(ledPin, OUTPUT);   // pré-determina o pino como saída&lt;/div&gt;&lt;div style="text-align: justify;"&gt;}&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;void loop()&lt;/div&gt;&lt;div style="text-align: justify;"&gt;{&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  val = analogRead(analogPin);   // lê o pino de entrada&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  analogWrite(ledPin, val / 4);  // os valores do analogRead variam de 0 a 1023, os valores do analogWrite variam de 0 a 255&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;}&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-2608547038736353014?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/2608547038736353014/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/analogwrite.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/2608547038736353014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/2608547038736353014'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/analogwrite.html' title='analogWrite()'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-5282872807089711554</id><published>2010-01-08T16:35:00.003-02:00</published><updated>2010-01-08T16:38:34.059-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>digitalRead()</title><content type='html'>&lt;span style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Lê o valor de um pino digital especificado,&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;HIGH&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;ou&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;LOW&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Sintaxe&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;digitalRead(pin)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Parâmetros&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;pin: o número do pin digital que você quer ler (&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Retorno&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;HIGH&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;ou&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;LOW&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif; font-size: small;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int ledPin = 13; // LED conectado ao pino digital 13&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;div style="text-align: justify;"&gt;int inPin = 7;   // botão conectado ao pino digital 7&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;int val = 0;     // variável para armazenar o valor lido&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;void setup()&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;{&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;pinMode(ledPin, OUTPUT);      // pré-determina o pino digital 13 como uma saída&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;pinMode(inPin, INPUT);      // pré-determina o pino dgital 7 como uma entrada&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;void loop()&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;{&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;val = digitalRead(inPin);   // lê o pino de entrada&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;digitalWrite(ledPin, val);    // acende ou apaga o LED de acordo com o pino de entrada&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;}&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Transfere para o pino 13 o valor lido no pino 7 que é uma entrada.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Nota&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Se o pino não estiver conectado a nada digitalRead() pode retornar tanto HIGH como LOW (e isso pode variar aleatoriamente).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Os pinos de entrada analógica podem ser usados como pinos digitais e devem ser referenciados com os números de 14 (entrada analógica 0) a 19 (entrada analógica 5).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-5282872807089711554?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/5282872807089711554/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/digitalread.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/5282872807089711554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/5282872807089711554'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/digitalread.html' title='digitalRead()'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-3452477403539226340</id><published>2010-01-08T16:34:00.000-02:00</published><updated>2010-01-08T16:34:37.991-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>HIGH / LOW</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;E&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;screve um valor&amp;nbsp;HIGH&amp;nbsp;ou um&amp;nbsp;LOW&amp;nbsp;em um pino digital. Se o pino foi configurado como uma saída (output) com o&amp;nbsp;pinMode(), sua voltagem será determinada ao valor correspondente: 5V (ou 3.3V nas placas de 3.3V) para HIGH, 0V (terra) para LOW.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Se o pino está configurado como uma entrada (input) escrever um HIGH levantará o resistor interno de 20KΩ (tutorial de pinos&amp;nbsp; digitais). Escrever um LOW rebaixará o resistor.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Sintaxw&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;digitalWrite(pin, valor)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Parâmetros&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;pin: o número do pin&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;valor:&amp;nbsp;HIGH&amp;nbsp;ou&amp;nbsp;LOW&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Retorno&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;nenhum&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int ledPin = 13;                 // LED conectado ao pino digital 13&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;void setup()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;  pinMode(ledPin, OUTPUT);      // determia o pino digital como uma saída&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;void loop()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;  digitalWrite(ledPin, HIGH);   // acende o LED&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;  delay(1000);                  // espera um segundo&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;  digitalWrite(ledPin, LOW);    // apaga um led&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;  delay(1000);                  // espera um segundo&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Nota&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Os pinos de entrada analógica podem ser usados como pinos digitais e devem ser referenciados com os números de 14 (entrada analógica 0) a 19 (entrada analógica 5).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-3452477403539226340?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/3452477403539226340/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/high-low.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3452477403539226340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3452477403539226340'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/high-low.html' title='HIGH / LOW'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-2632309272184499665</id><published>2010-01-08T16:32:00.002-02:00</published><updated>2010-01-08T16:32:57.563-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>pinMode</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Configura o pino especificado para que se comporte ou como uma entrada (input) ou uma saída (output). Veja a descrição dos&amp;nbsp;pinos digitais&amp;nbsp; para mais detalhes.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Sintaxe&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;pinMode(pin, mode);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Parâmetros&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;pin: o número do pin o qual você deseja predeterminar.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;mode: pode ser&amp;nbsp;INPUT&amp;nbsp;ou&amp;nbsp;OUTPUT&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Retorno&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Nenhum&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;int ledPin = 13;                 // LED conectado ao pino digital 13&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div style="text-align: justify;"&gt;void setup()&lt;/div&gt;&lt;div style="text-align: justify;"&gt;{&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  pinMode(ledPin, OUTPUT);      // predetermina o pino digital como uma saída&lt;/div&gt;&lt;div style="text-align: justify;"&gt;}&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;void loop()&lt;/div&gt;&lt;div style="text-align: justify;"&gt;{&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  digitalWrite(ledPin, HIGH);   // acende o LED&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  delay(1000);                  // espera um segundo&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  digitalWrite(ledPin, LOW);    // apaga o LED&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  delay(1000);                  // espera um segundo&lt;/div&gt;&lt;div style="text-align: justify;"&gt;}&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Nota&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Os pinos de entrada analógica podem ser usados como pinos digitais e devem ser referenciados com os números de 14 (entrada analógica 0) a 19 (entrada analógica 5).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-2632309272184499665?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/2632309272184499665/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/pinmode.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/2632309272184499665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/2632309272184499665'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/pinmode.html' title='pinMode'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-8159189229280331058</id><published>2010-01-08T16:02:00.006-02:00</published><updated>2010-01-08T16:31:04.876-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>Elementos de sintaxe</title><content type='html'>&lt;span style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="border-collapse: collapse;"&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: orange;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: orange;"&gt;&amp;nbsp;(ponto e vírgula)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Usada para terminar uma sentença.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="line-height: normal;"&gt;&lt;b&gt;&lt;span style="font-weight: normal; line-height: 19px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="line-height: normal; white-space: pre;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int a = 13;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;/pre&gt;&lt;h4 style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Dica&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Esquecer de finalizar uma linha com ponto e vírgula causa um erro de compilação. O texto sobre o erro pode ser óbvio e se referir a um ponto e vírgula faltando, ou não. Se ocorrer um erro de compilação impenetrável ou aparenetemente ilógico uma das primeiras coisas a checar é um ponto e vírgula faltando na vizinhança, precedendo a linha indicada pelo compilador.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;&lt;span style="border-collapse: collapse;"&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: orange;"&gt;{}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: orange;"&gt;&amp;nbsp;(chaves)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="border-collapse: collapse;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="border-collapse: separate; font-weight: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Chaves são uma parte essencial da linguagem de programação C. Elas são usadas em muitas construções diferentes, descritas abaixo, e isto pode algumas vezes ser confuso para iniciantes.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Uma chave abrindo "{" deve sempre ser seguida por uma fechando "}". Frequentemente nos referimos a esta condição como equilibrio entre as chaves. A IDE (&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;integrated development environment&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;ou ambiente de desenvolvimento integrado) do Arduino inclui uma característica prática para checar o equilibrio das chaves. Apenas com o selecionar de uma chave ou clicar no ponto imediatamente posterior faz com que sua companheira lógica seja destacada.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;No presente momento esta característica é um pouco defeituosa e a IDE frequentemente encontrará (incorretamente) uma chave em um bloco de texto que tenha sido comentado.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Programadores principiantes e programadores vindos das linguagens C e do BASIC frequentemente consideram o uso das chaves confuso ou desalentador. Afinal as mesmas chaves substituem a sentença RETURN em uma subrotina(função), a sentença ENDIF em uma condicional e a sentença NEXT em um FOR.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Por que o uso das chaves é tão variado, é uma boa prática de programação digitar o fecha-chaves "}" logo após digitar o abre-chaves "{" quando estiver fazendo uma construção que as requer. Inserte então alguns "ENTER" entre as chaves e comece a digitar o código. Agindo assim suas chaves nunca ficarão desequilibradas.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Chaves desequilibradas causam erros de comilação bastante enigmáticos e que podem ser difíceis de rastrear em um programa longo. Por causa de seus usos variados, as chaves são também incrivelmente importantes para a sintaxe de um programa e mover uma chave uma ou duas linhas pode alterar completamente o seu significado.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Os principais usos das chaves&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/h4&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Funções&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;  void myfunction(datatype argument){&lt;br /&gt;    sentença(s)&lt;br /&gt;  }&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Loops&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;  while (expressão booleana)&lt;br /&gt;  {&lt;br /&gt;     sentença(s)&lt;br /&gt; &amp;nbsp;}&lt;br /&gt;&lt;br /&gt;  do&lt;br /&gt;  {     &lt;br /&gt;      sentença(s)  &lt;br /&gt;   } while (expressão booleana);&lt;br /&gt;&lt;br /&gt;  for (inicialização; condição de término; expressão de incremento)&lt;br /&gt;  {&lt;br /&gt;     sentença(s)&lt;br /&gt;  } &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Sentenças condicionais&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;/h4&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;  if (expressão booleana)&lt;br /&gt;  {&lt;br /&gt;     sentença(s)&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  else if (expressão booleana)&lt;br /&gt;  {&lt;br /&gt;     sentença(s)&lt;br /&gt;  } &lt;br /&gt;  else&lt;br /&gt;  {&lt;br /&gt;     sentença(s)&lt;br /&gt;  }&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: orange;"&gt;// (comentarios)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-weight: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;b&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;Comentários são linhas no programa que são usados para informar a você mesmo ou outras pessoas sobre o modo como o progama trabalha. Elas são ignoradas pelo compilador e não são exportadas para o processador e portanto não ocupam a memória do chip ATmega.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;O único propósito dos comentários são ajudar a entender (ou relembrar) como o programa funciona. Há dois modos diferentes de marcar uma linha como um comentário.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;Exemplo&lt;/span&gt;&lt;/h4&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; x = 5;  // Esta é uma linha simples de comentário. Qualquer coisa depois das barras é um comentário &lt;br /&gt;         // até o fim da linha&lt;br /&gt;&lt;br /&gt;/* este é um bloco de comentário - usado para "comentar" blocos inteiros de código&lt;br /&gt;&lt;br /&gt;if (gwb == 0){   // não há problema em uma linha simples dentro de um bloco de comentário&lt;br /&gt;x = 3;           /* mas outro bloco de comentário é inválido */&lt;br /&gt;}&lt;br /&gt;// não esqueça de fechar o bloco de comentário, eles têm que ser equilibrados&lt;br /&gt;*/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;&lt;span style="font-size: small;"&gt;Dica&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: small;"&gt;Quando estiver experimentando com o código "comentar" partes do programa é um modo conveniente de remover linhas que podem conter problemas. Este procedimento mantém as linhas no código mas as trasnforma em comentários de modo que o compilador as ignora. Isto pode ser especialmente útil quando tentamos localizar um problema, ou quando um programa apresenta erros de compilação cujas explicações são obscuras ou inúteis.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&lt;span style="color: orange;"&gt;/* */ (Bloco de Comentarios)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Comentários são linhas no programa que são usados para informar a você mesmo ou outras pessoas sobre o modo como o progama trabalha. Elas são ignoradas pelo compilador e não são exportadas para o processador e portanto não ocupam a memória do chip ATmega.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;O único propósito dos comentários são ajudar a entender (ou relembrar) como o programa funciona. Há dois modos diferentes de marcar uma linha como um comentário.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; x = 5;  // Esta é uma linha simples de comentário. Qualquer coisa depois das barras é um comentário &lt;br /&gt;         // até o fim da linha&lt;br /&gt;&lt;br /&gt;/* este é um bloco de comentário - usado para "comentar" blocos inteiros de código&lt;br /&gt;&lt;br /&gt;if (gwb == 0){   // não há problema em uma linha simples dentro de um bloco de comentário&lt;br /&gt;x = 3;           /* mas outro bloco de comentário é inválido */&lt;br /&gt;}&lt;br /&gt;// não esqueça de fechar o bloco de comentário, eles têm que ser equilibrados&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Dica&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Quando estiver experimentando com o código "comentar" partes do programa é um modo conveniente de remover linhas que podem conter problemas. Este procedimento mantém as linhas no código mas as trasnforma em comentários de modo que o compilador as ignora. Isto pode ser especialmente útil quando tentamos localizar um problema, ou quando um programa apresenta erros de compilação cujas explicações são obscuras ou inúteis.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: orange;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;#define&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;é um componente muito útil da linguagem C que permite ao programador dar um nome a uma constatnte antes que o programa seja compilado. Constantes definidas no Arduino não ocupam espaço em memória no chip. O compilador substitui referêancias a estas constantes pelo valor definido no momento da compilação.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: medium;"&gt;&lt;span style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Isto pode causar alguns efeitos indesejáveis se, por exemplo, um nome de constante que tenha sido defindo por um #define é incluido em alguma outra constante ou nome de variável. Neste caso o texto deve ser substituido pelo valor (ou texto) do #define.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Em geral, a palavra chave&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://arduino.cc/en/Reference/Const" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;&lt;em&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;const&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;é preferível para definir constatntes e deve ser usada ao invés de #define.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;A sintaxe do #define na linguagem Arduino é a mesma da linguagem C:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Sintaxe&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;#define nomeDeConstante valor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Verifique que o # é necessário.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;#define ledPin 3&lt;br /&gt;// O compilador vai substituir quanquer menção a ledPin pelo valor 3 no momento da compilação.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Dica&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Não há ponto e vírgula após a declaração #define. Se você incluir um o compilador vai lançar erros críticos no final do programa.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;#define ledPin 3;    // isto é um erro&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Do mesmo modo o compilador gerará erros se após o #define houver um =.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;#define ledPin  = 3  // isto também é um erro&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: orange;"&gt;#include&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;é usado para incluir outras bibliotecas no seu programa. Isto permite ao programador acessar um grande número de bibliotecas padrão da linguagem C (grupos de funções pré-definidas), e também à bibliotecas desenvolvidas especificamente para o Arduino.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A página principal de referência para as bibliotecas C AVR (AVR é a referência aos chips Atmel nos quais o Arduino está baseado)&amp;nbsp; está&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.nongnu.org/avr-libc/user-manual/modules.html" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;aqui&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Verifique que&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;#include&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;, de modo similar ao&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;#define&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;, não leva ponto e vírgula no final.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Este exemplo inclui uma biblioteca que é utilizada para armazenar dados na memória flash ao invés de na ram. Isto economiza espaço na ram para as necessidades de memória dinâmica e torna o uso de grandes tabelas mais prático.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;#include &lt;avr/pgmspace.h&gt;&lt;br /&gt;&lt;br /&gt;prog_uint16_t myConstants[] PROGMEM = {0, 21140, 702  , 9128,  0, 25764, 8456,&lt;br /&gt;0,0,0,0,0,0,0,0,29810,8968,29762,29762,4500};&lt;/avr/pgmspace.h&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-8159189229280331058?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/8159189229280331058/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/elementos-de-sintaxe.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/8159189229280331058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/8159189229280331058'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/elementos-de-sintaxe.html' title='Elementos de sintaxe'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-7953031189192269292</id><published>2010-01-08T16:01:00.000-02:00</published><updated>2010-01-08T16:01:06.201-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>goto</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;T&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;ransfere o fluxo do programa para um outro ponto etiquetado&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Sintaxe&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;label:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;goto etiqueta; // envia o fluxo do programa para etiqueta&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Dica&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O uso do&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;goto&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;é desencorajado em programação C e inclusive alguns autores afirmam que o&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;goto&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;nunca é realmente necessário, mas usado com cautela pode simplificar alguns programas. A razão pela qual muitos programadores desaprovam seu uso é que com o uso indiscriminado é fácil de se criar um programa com um fluxo indefinido e muito difícil de ser depurado.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;No entanto, há casos em que o&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;goto&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;pode ser útil e simplificar o código. Uma destas situações é provocar uma saída de um grupo de loops aglutinados ou de blocos lógicos&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;com uma determinada condição.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre style="font-size: 1.25em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;for(byte r = 0; r &amp;lt; 255; r++){&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    for(byte g = 255; g &amp;gt; -1; g--){&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        for(byte b = 0; b &amp;lt; 255; b++){&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;            if (analogRead(0) &amp;gt; 250){ goto bailout;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;            // more statements ... &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;bailout:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-7953031189192269292?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/7953031189192269292/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/goto.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/7953031189192269292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/7953031189192269292'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/goto.html' title='goto'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-3617098078301201437</id><published>2010-01-08T16:00:00.002-02:00</published><updated>2010-01-08T16:00:15.083-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>return</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;F&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;inaliza uma função e retorna um valor, se necessário.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Sintaxe:&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;return;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;return valor; // ambas formas são válidas&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Parâmetros&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;valor: alguma variável ou constante&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Exemplos:&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Uma função para comparar o valor de um sensor com um limite&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; int checkSensor(){       &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;    if (analogRead(0) &amp;gt; 400) {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;        return 1;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;    else{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;        return 0;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;    }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;A palavra-chave&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;é útil para testar uma seção de código sem ter que transformar em "comentário" um grande e possivelmente defeituoso bloco de código.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-size: 1.25em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;void loop(){&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;// aqui, uma brilhante idéia de programação&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;return;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;// restante do bloco de código não funcional&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;// este código nunca será executado&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-3617098078301201437?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/3617098078301201437/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/return.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3617098078301201437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3617098078301201437'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/return.html' title='return'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-4112753341986458384</id><published>2010-01-08T15:58:00.002-02:00</published><updated>2010-01-08T15:58:14.449-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>continue</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;continue&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;é usado para saltar porções de código em blocos&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;, ou&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;while&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;. Ele força com que o código avance até o teste da condição saltando todo o demais.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre style="font-size: 1.25em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;for (x = 0; x &amp;lt; 255; x ++)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    if (x &amp;gt; 40 &amp;amp;&amp;amp; x &amp;lt; 120){      // criar saltos de execução&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;        continue;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    digitalWrite(PWMpin, x);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    delay(50);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-4112753341986458384?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/4112753341986458384/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/continue.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/4112753341986458384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/4112753341986458384'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/continue.html' title='continue'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-3987541734173045555</id><published>2010-01-08T15:57:00.002-02:00</published><updated>2010-01-08T15:57:25.867-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>break</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;strong&gt;b&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;reak&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;é usado para sair de um bloco&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, ou&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;while&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, se sobrepondo à condição normal de verificação. Também é usado para sair de uma sentença&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;switch&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Examplo&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre style="font-size: 1.25em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;for (x = 0; x &amp;lt; 255; x ++)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;    digitalWrite(PWMpin, x);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;    sens = analogRead(sensorPin);  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;    if (sens &amp;gt; threshold){      // checar a detecção por um sensor&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;       x = 0;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;       break;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;    }  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;    delay(50);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-3987541734173045555?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/3987541734173045555/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/break.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3987541734173045555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3987541734173045555'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/break.html' title='break'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-3009446223687457133</id><published>2010-01-08T15:56:00.002-02:00</published><updated>2010-01-08T15:56:32.889-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>do</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;O&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;funciona da mesma maneira que o&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;while&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;loop, com a exceção de que a condição é testada no final do bloco de código. Enquanto no&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;while&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;, se a condição for falsa, o bloco de código não será executado, no&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;ele sempre será executado pelo menos uma vez.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;    // bloco de código&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;} while (condição);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre style="font-size: 1.25em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  delay(50);          // espera para que os sensores se estabilizem&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  x = readSensors();  // verifica o sensor&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;} while (x &amp;lt; 100);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-3009446223687457133?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/3009446223687457133/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/do.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3009446223687457133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3009446223687457133'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/do.html' title='do'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-6862526871803795922</id><published>2010-01-08T15:55:00.002-02:00</published><updated>2010-01-08T15:55:51.496-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>while</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;strong&gt;w&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;hile&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;fará com que o bloco de código entre chaves se repita continua e indefinidamente até que a expressão ente parentesis() se torne falsa. Algo tem que provocar uma mudança no valor da variável que está sendo verificada ou o código vai sempre ficar dando voltas dentro do&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;while&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;. Isto poderia ser o incremento de uma variável ou uma condição externa como o teste de um sensor.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Syntax&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;while(expressão){&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;  // código&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Parâmetros&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;expressão - uma sentença boolena em C que possa ser verificada como verdadeira ou falsa&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre style="font-size: 1.25em; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;var = 0;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;while(var &amp;lt; 200){&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;  // algum código que se repete 200 vezes&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;  var++;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-6862526871803795922?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/6862526871803795922/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/while.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/6862526871803795922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/6862526871803795922'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/while.html' title='while'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-4721707406454651675</id><published>2010-01-08T15:47:00.000-02:00</published><updated>2010-01-08T15:47:23.948-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>for</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;A&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; sentença&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;é utilizada para repetir um bloco de código delimitado por chaves. Um contador com incremento normalmente é usado para controlar e finalizar o loop. A sentença&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;é util para quanquer operação repetitiva, e é frequentemente usada com arrays para operar em conjuntos de dados ou de pinos.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Há três partes no cabeçalho do&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;inicialização&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;condição&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;incremento&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;) {&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;//sentença(s);&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;A&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;inicialização&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;ocorre primeiro e apenas uma vez. Cada vez que o circuíto é executado a&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;condição&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;é verificada; se for verdadeira o bloco de código e o&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;incremento&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;são executados, e então a&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;condição&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;é testada novamente. Quando a condição se torna falsa o circuíto termina.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;// Aumentar o brilho de um LED usando um pino PWM&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;int PWMpin = 10; // um LED em série com um resisotr de 1kΩ no pino 10&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;void setup()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;  // nenhum setup é necessário&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;void loop()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;   for (int i=0; i &amp;lt;= 255; i++){&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;      analogWrite(PWMpin, i);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;      delay(10);&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;   } &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Dica de programação&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Na linguagem C o circuito&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;é muito mais flexível que os circuitos for encontrados a algumas outras linguagens de programação, incluindo BASIC. Qualquer dos elementos do cabeçalho pode ser omitido, embora os ";" sejam necessários. Qualquer destes elementos também podem ser substituidos por qualquer sentença válida em C com varáveis não correlatas. Estes tipos não usuais de sentenças&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;for&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;as vezes podem ser a solucão para alguns problemas raros de programação.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-4721707406454651675?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/4721707406454651675/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/for.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/4721707406454651675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/4721707406454651675'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/for.html' title='for'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-8353206338476422570</id><published>2010-01-08T15:46:00.000-02:00</published><updated>2010-01-08T15:46:05.641-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>switch case</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Do mesmo modo que as sentenças&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;, as&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;switch / case&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;controlam o fluxo dos programas.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Switch/case&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;permite ao programador construir uma lista de "casos" dentro de um bloco delimitado por chaves. O programa checa cada caso com a vaiável de teste e executa o código se encontrar um valor idêntico.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Switch / case&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;é um pouco mais flexível que uma estrutura&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;if/else&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;de modo que o programador pode determinar se a estrutura&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;switch&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;deve continuar checando por valores idênticos na lista dos "caosos" após encontrar um valor idêntico. Se a sentença&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;não é encontrada após a execução do bloco de código selecionado por um dos "casos", então o programa vai continuar a checar por mais valores idênticos entre os "casos" restantes. Se uma sentença&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;break&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;é encontrada o código sai da estrutura do mesmo modo que em uma construção&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;if/else if&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Parâmetros&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;ul style="margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: initial; background-image: url(http://multilogica-shop.com/themes/acquia_marina/images/green-bullet.png); background-position: 0% 0.5em; background-repeat: no-repeat; list-style-image: none; list-style-type: none; margin-bottom: 0.15em; margin-left: 0px; margin-right: 0px; margin-top: 0.15em; padding-bottom: 0px; padding-left: 1.666em; padding-right: 0px; padding-top: 0.2em; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;var - a variável para a qual você busca valores idênticos&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: initial; background-image: url(http://multilogica-shop.com/themes/acquia_marina/images/green-bullet.png); background-position: 0% 0.5em; background-repeat: no-repeat; list-style-image: none; list-style-type: none; margin-bottom: 0.15em; margin-left: 0px; margin-right: 0px; margin-top: 0.15em; padding-bottom: 0px; padding-left: 1.666em; padding-right: 0px; padding-top: 0.2em; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;default - se nenhuma outra condição for satisfeita o código que está no default é executado&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="-webkit-background-clip: initial; -webkit-background-origin: initial; background-attachment: initial; background-color: initial; background-image: url(http://multilogica-shop.com/themes/acquia_marina/images/green-bullet.png); background-position: 0% 0.5em; background-repeat: no-repeat; list-style-image: none; list-style-type: none; margin-bottom: 0.15em; margin-left: 0px; margin-right: 0px; margin-top: 0.15em; padding-bottom: 0px; padding-left: 1.666em; padding-right: 0px; padding-top: 0.2em; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;break - sem o break a sentença&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;switch&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;vai continuar checando as outras sentenças&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;case&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;para quanquer outro possível valor idêntico. Se algum for encontrado será executado do mesmo modo, o que pode não ser o que você deseja. Break indica ao switch para parar de procurar por outros valores idênticos e sai da sentença switch.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;dl&gt;&lt;dd&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;  switch (var) {&lt;br /&gt;    case 1:&lt;br /&gt;      //faça alguma coisa quando var == 1&lt;br /&gt;      break;&lt;br /&gt;      // break is optional&lt;br /&gt;    case 2:&lt;br /&gt;      //faça alguma coisa quando == 2&lt;br /&gt;      break;&lt;br /&gt;    default: &lt;br /&gt;      // se nenhum valor for idêntico, faça o default&lt;br /&gt;      // default é opcional&lt;br /&gt;  }&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-8353206338476422570?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/8353206338476422570/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/switch-case.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/8353206338476422570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/8353206338476422570'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/switch-case.html' title='switch case'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-6703650294077629166</id><published>2010-01-08T15:44:00.000-02:00</published><updated>2010-01-08T15:44:23.855-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>if / else</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;if/else&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;permite um controle maior sobre o fluxo de código do que a sentença&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;básica, tornando possível que múltiplos testes sejam agrupados. Por exemplo, uma entrada analógica poderia ser verificada e uma ação específica seria tomada se o valor de input fosse menor que 500 e outra ação seria tomada se o input fosse 500 ou mais. O código seria assim:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;if (pinFiveInput &amp;lt; 500)&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;div style="text-align: justify;"&gt;  // ação A&lt;/div&gt;&lt;div style="text-align: justify;"&gt;}&lt;/div&gt;&lt;div style="text-align: justify;"&gt;else&lt;/div&gt;&lt;div style="text-align: justify;"&gt;{&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  // ação B&lt;/div&gt;&lt;div style="text-align: justify;"&gt;}&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;pode preceder outro teste&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;, e assim mltiplos testes, mutuamente exclusivos, podem ser realizados ao mesmo tempo.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Cada teste precede o próximo até que um teste com vavlor verdadeiro é encontrado. Quando um teste com valor verdadeiro é encontrado o seu bloco de código associado é execuatod e então o programa salta para a sequencia após todo o bloco if/else. Se a nenhum teste é atribuido o valor verdadeiro o bloco que estiver no else sozinho é executado, se houver algum.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Note que um bloco&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;else if&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;pode ser usado com ou sem um bloco&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;final. Um número ilimitado destes ramos&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;else if&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&amp;nbsp;é permitido.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif; font-size: small;"&gt;if (pinFiveInput &amp;lt; 500)&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;div style="text-align: justify;"&gt;  // faça a coisa A&lt;/div&gt;&lt;div style="text-align: justify;"&gt;}&lt;/div&gt;&lt;div style="text-align: justify;"&gt;else if (pinFiveInput &amp;gt;= 1000)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;{&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  // faça a coisa B&lt;/div&gt;&lt;div style="text-align: justify;"&gt;}&lt;/div&gt;&lt;div style="text-align: justify;"&gt;else&lt;/div&gt;&lt;div style="text-align: justify;"&gt;{&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  // faça a coisa C&lt;/div&gt;&lt;div style="text-align: justify;"&gt;}&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Outro modo de fazer testes de ramificações mutuamente exclusivas é através da sentença&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;switch case&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-6703650294077629166?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/6703650294077629166/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/if-else.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/6703650294077629166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/6703650294077629166'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/if-else.html' title='if / else'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-1971292192447974894</id><published>2010-01-08T15:42:00.000-02:00</published><updated>2010-01-08T15:42:27.895-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>if (condicional) e ==, !=, &lt;, &gt; (operadores de comparação)</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-size: 1em; font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-family: monospace;"&gt;&lt;b&gt;IF&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;, que é usado juntamente com um operador de comparação, verifica quando uma condição é satisfeita, como por exemplo um input acima de um determinado valor. O formato para uma verificação if é:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;if (algumaVariavel &amp;gt; 50)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;  // faça alguma coisa&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;O programa checa se algumaVariavel (colocar acentos em nomes de variáveis não é uma boa idéia) é maior que 50. Se for, o programa realiza uma ação específica. Colocado de outra maneira se a sentença que está dentro dos parêntesis é verdadeira o código que está dentro das chaves roda; caso contrário o programa salta este bloco de código.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;As chaves podem ser omitidas após uma sentença&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;se só houver uma única linha de código (definida pelo ponto e vírgula) que será executado de modo condicional:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;if (x &amp;gt; 120)  digitalWrite(LEDpin, HIGH); &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;if (x &amp;gt; 120)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;digitalWrite(LEDpin, HIGH); &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;if (x &amp;gt; 120) {digitalWrite(LEDpin, HIGH);}   // todos são corretos&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A sentença que está sendo verificada necessita o uso de pelo menos um dos operadores:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Operadores de comparação:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;x == y&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (x é igual a y)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;x != y&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (x é não igual a y)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;x &amp;lt;  y&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (x é menor que y)  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;x &amp;gt;  y&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (x é maior que y) &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;x &amp;lt;= y&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (x é menor ou igual a y) &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;x &amp;gt;= y&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; (x é maior ou igual a y)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;h4 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Cuidado:&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Tenha precaução com o uso acidental de apenas um sinal de igual (&lt;/span&gt;&lt;/span&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;if (x = 10)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;). O sinal de igual simples é um operador de designação e coloca o valor 10 na variável x. Ao contrário o sinal de igual duplo (&lt;/span&gt;&lt;/span&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;if (x == 10)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;), que é um operador de comparação, verifica se x é igual a 10 ou não. A última senteça só é verdadeira se x for igual a 10, mas a anterior sempre será verdadeira.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Isto ocorre por que a linguagem C (na qual o Arduino é baseado) atribui um valor à sentença&lt;/span&gt;&lt;/span&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;(x=10)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;do seguinte modo: 10 é colocado na variável x (lembre o sinal de igual simples é um&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="color: #666666;"&gt;operador de designação&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;), então x agora contém 10. Então o condicional 'if' atribui um valor a 10, que será sempre verdadeiro (TRUE), desede que números diferentes de zero são sempre equiparados à verdadeiro. Consequentemente,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;if (x = 10)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;será sempre verdadeiro, que não é o que pretendemos quando usamos um 'if'. Adcionalmente o valor 10 será guardado na variável x que também não é o que pretendemos.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-1971292192447974894?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/1971292192447974894/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/if-condicional-e-operadores-de.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/1971292192447974894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/1971292192447974894'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/if-condicional-e-operadores-de.html' title='if (condicional) e ==, !=, &lt;, &gt; (operadores de comparação)'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-353746947246313552</id><published>2010-01-08T15:39:00.000-02:00</published><updated>2010-01-08T15:39:19.001-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>Estrutura void loop()</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Após criar uma fução setup() que declara os valores iniciais, a função loop() faz exatamente o que seu nome sugere, entra em looping (executa sempre o mesmo bloco de código), permitindo ao seu programa fazer mudanças e responder. Use esta função para controlar ativamente a placa Arduino.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; &lt;br /&gt;int buttonPin = 3;&lt;br /&gt;&lt;br /&gt;// setup inicializa o serail e o pino do button(botão)&lt;br /&gt;void setup()&lt;br /&gt;{&lt;br /&gt;  beginSerial(9600);&lt;br /&gt;  pinMode(buttonPin, INPUT);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// loop checa o botão a cada vez,&lt;br /&gt;// e envia o serial se ele for pressionado&lt;br /&gt;void loop()&lt;br /&gt;{&lt;br /&gt;  if (digitalRead(buttonPin) == HIGH)&lt;br /&gt;    serialWrite('H');&lt;br /&gt;  else&lt;br /&gt;    serialWrite('L');&lt;br /&gt;&lt;br /&gt;  delay(1000);&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-353746947246313552?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/353746947246313552/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/estrutura-void-loop.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/353746947246313552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/353746947246313552'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/estrutura-void-loop.html' title='Estrutura void loop()'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-2856581623760234868</id><published>2010-01-08T15:37:00.000-02:00</published><updated>2010-01-08T15:37:31.170-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>Estrutura void setup()</title><content type='html'>&lt;span class="Apple-style-span" style="color: #666666; font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-weight: normal; line-height: 19px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A função setup() é chamada quando um programa pomeça a rodar. Use esta função para inicializar as sua variáveis, os modos dos pinos, declarar o uso de bibliotecas, etc. Esta função será executada apenas uma vez após a placa Arduino ser ligada ou resetada.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Exemplo&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;pre style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; &lt;br /&gt;int buttonPin = 3;&lt;br /&gt;&lt;br /&gt;void setup()&lt;br /&gt;{&lt;br /&gt;  Serial.begin(9600);&lt;br /&gt;  pinMode(buttonPin, INPUT);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void loop()&lt;br /&gt;{&lt;br /&gt;  // ...&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-2856581623760234868?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/2856581623760234868/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/estrutura-void-setup.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/2856581623760234868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/2856581623760234868'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/estrutura-void-setup.html' title='Estrutura void setup()'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-3960836967407563332</id><published>2010-01-08T15:34:00.001-02:00</published><updated>2010-01-08T15:35:12.222-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linguagem #C'/><title type='text'>Arduino e a linguagem C</title><content type='html'>&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Bom pessoal, o que todos acreditam saber sobre o ARDUINO é que ele é compilado em liguagem C, mas será essa a verdade? Para quem já cursou um técnico em Informática sabe que a linguagem de programação utilizada pela IDE do Arduino está longe de ser um C puro e sim uma mistura de C, C+, C++, JAVA e por ai vai...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Eu nem sei por que diabos escrevi isto, mas foi um modo de começar a falar de linguagem de programação...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Como estou sem idéias para projetos, vou postar em uma nova tag "Compilando", como usar a linguagem &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;ARDUINO&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;!&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-3960836967407563332?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/3960836967407563332/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/arduino-e-linguagem-c.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3960836967407563332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/3960836967407563332'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/arduino-e-linguagem-c.html' title='Arduino e a linguagem C'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-7682681840876875795</id><published>2010-01-07T20:16:00.000-02:00</published><updated>2010-01-07T20:16:38.199-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Projetos e Circuitos'/><title type='text'>Leitura de temperatura com Arduino + LM35 (Melhorado)</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Hoje o post, é sobre o leitor de temperatura utilizando o LM35, porém inserindo um LCD e recalculando a temperatura em Kelvin e Farenheit.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;Código:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;//Leitura de Temperatura em Celsius, Kelvin e Farenheit com o Arduino&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;//Sketch V1.1&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;//Autor, Danilo de Nadai Sicari - 12/12/09&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;//esquema para ligação do LCD, disponivel em post antigo&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;#include &lt;liquidcrystal.h&gt;&lt;/liquidcrystal.h&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;LiquidCrystal lcd(12, 11, 5, 4, 3, 2);&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;int lm35=0;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;int c, k, f, temp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;void setup() {&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;pinMode(lm35, INPUT);&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;lcd.begin(16, 2);&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;lcd.print("THERMLCD &amp;nbsp; &amp;nbsp;v1.1");&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;}&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;void loop() {&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;temp = ( 5 * analogRead(lm35) * 100 ) / 1024;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;c = temp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;k = temp + 273.15; &amp;nbsp; &amp;nbsp; //calcula Farenheit&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;f = 32 + (1.8 * temp);//calcula Kelvin&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;lcd.setCursor(0, 1); &amp;nbsp; //exibe Celsius em decimal&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;lcd.print(c, DEC);&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;lcd.setCursor(3, 1);&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;lcd.print("C");&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;lcd.setCursor(6, 1); &amp;nbsp; //exibe Farenheit em decimal&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;lcd.print(f, DEC);&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;lcd.setCursor(9, 1);&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;lcd.print("F");&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;lcd.setCursor(12, 1); //exibe Kelvin em decimal&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;lcd.print(k, DEC);&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;lcd.setCursor(15, 1);&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;lcd.print("K");&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;delay(60000); //aguarda 1 min. para realizar nova leitura e atualizar LCD&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;}&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Espero que curtam, e boa sorte!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Att, denadai.sicari&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5099989289846806992-7682681840876875795?l=arduinobrasil.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://arduinobrasil.blogspot.com/feeds/7682681840876875795/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/leitura-de-temperatura-com-arduino-lm35.html#comment-form' title='10 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/7682681840876875795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5099989289846806992/posts/default/7682681840876875795'/><link rel='alternate' type='text/html' href='http://arduinobrasil.blogspot.com/2010/01/leitura-de-temperatura-com-arduino-lm35.html' title='Leitura de temperatura com Arduino + LM35 (Melhorado)'/><author><name>denadai.sicari</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='22' src='http://1.bp.blogspot.com/_t9dpDgIUVLw/Sw0ky0ryGvI/AAAAAAAAABA/184PB36f0CE/s1600-R/freeduino_SB_angled.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5099989289846806992.post-537184305991963364</id><published>2010-01-06T17:04:00.002-02:00</published><updated>2010-01-06T17:34:51.284-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Teoria'/><title type='text'>Como acender um LED?</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="line-height: 17px;"&gt;&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;Então como é que se acende um LED?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;Bom, para começar precisamos de 1 LED, 2 pilhas de 1.5 V ligadas em série e uma resistência cujo valor calcularemos mais tarde usando a mesma fórmula baseada na Lei de Ohm.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="line-height: 17px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="line-height: 17px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;O LED é polarizado, isto é, as suas perninhas são electricamente diferentes e a forma como se liga ao circuito importa; há uma forma correcta de o ligar e trocar uma perna pela outra não é válido. Uma das perninhas chama-se&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;nodo&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;e liga-se ao lado positivo das pilhas. A outra chama-se&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;cátodo&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;e liga-se ao lado negativo. A forma de se identificar o&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;ánodo&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;e o&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;cátodo&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;de um LED é através de 1 de 2 marcas: o&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;cátodo&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;tem a perninha mais curta e, em alguns LEDs como os redondos, também tem um corte na aba.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="line-height: 17px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_t9dpDgIUVLw/S0TdnecaM0I/AAAAAAAAAD0/z-lGf0GlFeI/s1600-h/leds.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_t9dpDgIUVLw/S0TdnecaM0I/AAAAAAAAAD0/z-lGf0GlFeI/s320/leds.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="line-height: 24px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;Esta forma de identificar as perninhas do LED funciona bem se tivermos um LED novo ou redondo. Se tivermos por exemplo um LED quadrado cujas perninhas já foram cortadas então não temos nenhuma pista, e neste caso vamos ter que experimentar ligar o LED das 2 formas ou usar um&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;multímetro&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;que tenha um teste de&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;díodos&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;(pois é, o LED é um&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;díodo&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;, especial).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="line-height: 1.5em; margin-bottom: 1.2em; margin-left: 0px; margin-right: 0px; margin-top: 1.2em;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;A forma de ligar os componentes é como no esquema abaixo, a&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;tensão&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;é fixa, com o valor de 3V resultante de ligar as 2 pilhas de 1.5 V em série, e representada pela&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;fonte de tensão&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;que corresponde à&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;bola&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;no circuito.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height: 1.5em; margin-bottom: 1.2em; margin-left: 0px; margin-right: 0px; margin-top: 1.2em; text-align: center;"&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&lt;img alt="Circuito do LED" src="http://troniquices.files.wordpress.com/2007/10/comoacenderumled1.png" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height: 1.5em; margin-bottom: 1.2em; margin-left: 0px; margin-right: 0px; margin-top: 1.2em; text-align: left;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="line-height: 17px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;Falta apenas calcular a resistência&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;do circuito. Mas agora precisamos de ter valores&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;a sério&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;para a&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;queda de tensão&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;no LED e para a corrente máxima. O ideal era consultar a&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;datasheet&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;do LED, que é um documento escrito pelo fabricante e que contém essas informações. Mas um LED não tem indicado o modelo e fabricante, pelo que se já tem um LED é difícil ou mesmo impossível saber estas informações. Contudo, os LEDs dos vários fabricantes são tipicamente muito semelhantes nas suas características, existindo uma espécie de standard; por isso é que os LEDs tipicamente não possuem marcado o modelo e fabricante. Sendo assim, vou deixar aqui valores médios da&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;queda de tensão&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;e&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;corrente máxima&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&amp;nbsp;para os LEDs “normais” das cores mais comuns.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height: 1.5em; margin-bottom: 1.2em; margin-left: 0px; margin-right: 0px; margin-top: 1.2em; text-align: center;"&gt;&lt;span style="line-height: 17px;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #444444;"&gt;&lt;span style="-webkit-bor
