terça-feira, 29 de dezembro de 2015


VFO DDS ARDUINO - AD9850 - IR REMOTE

Ola amigos


FOTO: MONTAGEM COM O ARDUINO NANO

Resolvemos publicar este DDS usando o Arduino com controle remoto, como estou descrevendo como iniciar no Arduino via radio, ou seja montando coisas par uso em radio, no blogspot arduino4radio. Como as coisas demoram para acontecer por lá e tem muitos colegas apressados aqui vai um pitaco do que fizemos.
De antemão aviso que não estudei programação e aprendi sozinho a programar, como tambem eletronica, pois nunca fui a escola destas materias ... de informatica tive algumas aulas de Fortran faz uns 40 anos, na Faculdade de matematica eram computadores IBM/360 de grande porte , usavam cartões perfurados para carregar os programas, visto isso praticamente nunca estudei informatica.
Este programa como outros que faço pode ser em muito aperfeiçoado e isto deixo a cargo de quem entende do assunto, sei que a ideia de como fazer tambem tem seu valor e  este trabalho é exatamente para isso, para divulgar a ideia, o programa funciona e certamente deve ter Bugs, mas ao menos servirá para uso em nosso Hobby.
Trabalha de  1Hz a 42MHz de 1 em 1 Hz e a operação é via controle remoto.
A montagem é simples pois utiliza modulos comprados prontos, montagem mesmo somente do driver que possui dois transistores.

Video no YOUTUBE deste VFO

Vamos ao esquema (sem o driver e com o driver de RF)


 







Driver






Os transistores do driver podem ser substituidos
2N3904 = 2N2222 = BC547 = BC548
BD135 = DB137 = BD139 = 2N2218 = 2N2219 estes transistores devem ser da Phlips ou Motorola.
Os toroides podem ser substituidos por toroides retirados de lampadas economicas. Eu sempre enrolo em fios tipo 30AWG encapados por plastico colorido, que ajuda na identificação (retirados de cabos telefonicos)
Eu montei em um modulo e fixei em um placa de circuito impresso comercial com ilhas para cada furo,  assim soldei pinos macho, para Vcc, terra entra de RF e saida de RF, assim se tornou um shield do arduino. E facilita a montagem em uma placa comercial  com soquetes ou conectores femea.

Montagem completa


O esquema chapeado do VFO sem o amplificador de RF
Note que o circuito que opera o I2C ligado ao display de LCD é soldado diretamente no LCD, mas pode ser soqueteado tambem.






FOTO : MODULOI2C SOLDADO AO DISPLAY LCD 1602



Lista de material e onde comprar

01 Arduino nano  Atmega 328 + USB cable for Arduino -  (
CH340 driver)  - V3.0

Compre com um cabo se vc não possuir um, este cabo é de conector USB normal para conector mini USBb, o USBb é um conector usado por maquinas fotograficas e alguns videogames,  é facil de confundir com USBa usado por celulares Sansung ... na duvida compre o primeiro com cabo e se comprar outros compre sem o cabo.
Com cabo no Ebay sai por volta de R$12,80 com frete gratis, sem o cabo R$8,80
Na Dealextreme com cabo  sai por R$26
Na Aliexpress com cabo sai por R$10 e sem o cabo por R$7,30 ... neste voce pode comprar com pagamento por boleto bancario.
No mercado livre vc paga R$19 mais correio
Na Flip Flop (Brasil) vc paga R$60 mais o frete.

01 LCD 2 linhas de 16 caracteres 2x16 ou 1602 com back light

Ebay R$6,50 frete gratis
Dealextreme R$15 frete gratis
Aliexpress R$5,60 frete gratis
ML R$10 incluir frete
Flip Flop R$19 mais frete.

01 controlador I2C para LCD1602 16x2

Ebay R$3,50 frete gratis
Dealextreme R$7,56
Aliexpress R$3,29 e R$7,70 o jogo LCD + controlador I2C  com frete gratis
MLR$ 12 mais frete
Flip Flop R$16 mais frete

01 Modulo DDS AD9850

Ebay R$32 frete gratis
Dealextreme R$32,50 frete gratis
Aliexpress R$33,50 frete gratis
ML R$75 mais frete
Flip Flop não tem

01 Sensor de IR HX1838

Pode ser retirado de TV ou videocassete ou outro aparelho que fosse controlado por conproleremoro IR (infra vermelho).
Ebay 10 peças R$3,90 ou 1 pç mais controle remoto (sem bateria incluida) 4,78 frete gratis
Dealextreme 01pç com controle remoto 
(sem bateria incluida) R$12 frete gratis
Aliexpress
01pç com controle remoto (sem bateria incluida) R$4,60 - 100pçs HX1838  R$32 frete gratis
ML
01pç com controle remoto (sem bateria incluida) R$13 mais frete
Flip Flop  não tem

Material adicional

Connectors 40 pins female - regua de 40 pinos de conector femea soldavel

Ebay R$3,67 10 peças frete gratis
Aliexpress R$4,80 10 peças frete gratis
ML R$1,14 cada incluir frete

Conector BNC painel para RF

Ebay R$4,50 10 peças frete gratis
Aliexpress R$ 15,30 10 peças frete gratis

Placa PCB padrão com ilhas isoladas

Ebay 70mmx90mm 10 peças R$10 com frete gratis
Aliexpress 70mmx90mm  R$ 12,00 10 peças frete gratis



FOTO :  MONTAGEM EXPERIMENTAL COM ARDUINO UNO (embaixo, a direita, placa com modulos de amplificador de RF (BD135) , sensor de SWR (2 toroides) , amplificador de sinais (LM324), amplificador com J310, fonte com 78l05, diodos zener de 4v7(segurança do arduino) e terminal de saida)
Estes modulos são para o testador de filtros  (BD135 78l05 e J310) e para o analizador de antenas (SWR  LM324 e zener) - no arduino altera somente o software

Montagem livre  -  o VFO pode ficar em caixa plastica mas é preferivel montar em caixa metalica, quem preferir : montar um controlador com 7805 e alimentar diretamente o Arduino.
Para funciona obviamente é necessario que os codigos das teclas do controle remoto sejam reconhecidas pelo Arduino, e como cada controle remoto tem um codigo especial é necessario descobrir este codigo.
para isto apos a montagem este programa deve ser carregado

Nota a biblioteca
IRremote.h deve ser baixada deste link e adicionada ao programador do Arduino
https://github.com/z3t0/Arduino-IRremote

Sketch (programa do arduino)

/* Sensor de Infravermelho IR Lê e imprime na porta
serial do PC, o valor em HEX hexadecimal, da tecla  pressionanda, do controle remoto.

 ___
|( )|  PINO 1 = Sinal para o arduino pino 11
|___|  PIN) 2 = Terra ou GND
| | |  PINO 3 = 3V3
| | |
1 2 3
Arduino  IRremote livraria
https://github.com/z3t0/Arduino-IRremote
*/

#include <IRremote.h>

int PINO_RX = 11; //define o pino 11 como de recepção
IRrecv irrecv(PINO_RX);// define o pino 11 como receptor de Infravermelho
decode_results resultado; // passa os valores lidos para a variavel resultado

void setup()
{
  Serial.begin(9600); // Inicia a comunicação serial
  irrecv.enableIRIn(); // Inicia a recepção de Infravermelho IR
}

void loop() {
  if (irrecv.decode(&resultado)) { //  if = se tiver algum valor em resultado faça as linhs seguintes até
// a chave se não pule
    Serial.println(resultado.value, HEX);// coloca na seria (tela do PC) o valor hexadecimadl da tecla apertada
    irrecv.resume(); // pronta para receber o proximo valor
  }// fecha o comando if
}

Anote o valor hexa, de cada tecla, exibido no monitor do PC.

Depois altere no sketch do VFO abaixo, um codigo para cada tecla
lembre-se que vc precisa teclar uma tecla para mudar a frequencia por numeros e outra tecal no final para confirmar.
A mudança para cima ou para baixo de numeros de casa decimais é feita por uma tecla + para subir e por uma tecla - para descer  .... já uma tecla define se o cursor para mudança de caixa vai a esquerda <=   outra tela define se ele vai a direita =>   ... e a frequencia nesta caso se altera automaticamente ...

Nota: para este programa ser compilado é necessario adiciona a biblioteca LiquidCrystal_I2C diponivel neste link :
https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/LiquidCrystal_V1.2.1.zip

Sktech principal (baseado em varios sketchs retirados da WEB)

#include <Wire.h> // biblioteca comunicação
#include <LiquidCrystal_I2C.h> // biblioteca LCD
#include <IRremote.h> // biblioteca controle remoto
#define W_CLK 7       // Pino D7  - ligue ao pino (CLK) "word load clock" do modulo AD9850
#define FQ_UD 6      // Pino D6 - ligue ao pino (FQ) "freq update" do modulo AD9850
#define DATA 5      //Pino D5 - ligue ao pino (DATA) "serial data load" do modulo AD9850
#define RESET 4      //Pino D4 - ligue ao pino (RST) "reset" do modulo AD9850
#define FREQCORR 0 // correção de frequencia por software
#define pulseHigh(pin) {digitalWrite(pin, HIGH); digitalWrite(pin, LOW); }
volatile unsigned long frequencia = 1000000;    // Inicia em 10MHz
String letra; // uma letra ou numero considerado como letra
String palavra = ""; //uma palavra ou sequencia de letras
long numero = 0; // um numero a palavra transformada em numero
int freq; // valor da frequencia
int IRRX_pino = 11; // define o pino de recepção do IR como D11
IRrecv irrecv(IRRX_pino);
decode_results resultado; // apresenta o valor lido no IR em resultado
float armazenavalor; // armazena o valor lido do IR
int num = 0; // num é um flag ou bandeira se altera a bandeira ocorre algo
int digi = 5; // posição do cursor da frequencia começa no meio 5
double degrau = 0.1; // é o valor em que o cursor da frequencia esta
int i = 1; //
long frmax = 45000000;
long frmin = 10;
int espa = 1;
String branco = " ";
// Inicializa o display, geralmente. no endereco 0x27 o meu eh 0x3F
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
// teclas do controle remoto substitua por exemplo o valor FF6897 da tecla 0 pelo valor lido no PC ao
// teclar zero no controle remoto
float n0 = 0xFF6897  ; //tecla 0
float n1 = 0xFF30CF  ; // tecla 1
float n2 = 0xFF18E7  ; //tecla 2
float n3 = 0xFF7A85  ; //tecla 3
float n4 = 0xFF10EF  ; //tecla 4
float n5 = 0xFF38C7  ; //tecla 5
float n6 = 0xFF5AA5  ; //tecla 6
float n7 = 0xFF42BD  ; //tecla 7
float n8 = 0xFF4AB5  ; //tecla 8
float n9 = 0xFF52AD  ; //tecla9
float nn = 0xFF629D  ; //tecla CH entrar valor numerico da freq. em kHz
float nncfm = 0xFF906F  ; //tecla EQ confirma valor numerico da frequencia
float nce = 0xFF22DD  ; //tecla <<= seta cursor a esquerda
float ncd = 0xFF02FD  ; //tecla =>> seta cursor a direita
float nsobe = 0xFFA857  ; //tecla + sobe um valor na posição do cursor
float ndesce = 0xFFE01F  ; //tecla - abaixa um valor na posição do cursor

void setup() {
  Serial.begin(9600);
  lcd.begin (16, 2);
  pinMode(FQ_UD, OUTPUT);
  pinMode(W_CLK, OUTPUT);
  pinMode(DATA, OUTPUT);
  pinMode(RESET, OUTPUT);
  pulseHigh(FQ_UD);
  irrecv.enableIRIn(); // Inicializa o receptor IR
}
void loop () {
  if (frequencia > frmax) {
    (frequencia = frmax) ;
  }
  if (frequencia < frmin) {
    (frequencia = frmin);
  }
  if (frequencia >= 10000000)
  {
    espa = 1;
    branco = " ";
  }
  if ((frequencia < 10000000) && (frequencia > 999999))
  {
    (espa = 2);
    branco = " 0";
  }
  if ((frequencia < 1000000) && (frequencia > 99999))
  {
    (espa = 3);
    branco = " 00";
  }
  if ((frequencia < 100000) && (frequencia > 9999))
  {
    (espa = 4);
    branco = " 000";
  }
  if ((frequencia < 10000) && (frequencia > 999))
  {
    (espa = 5);
    branco = " 0000";
  }
  if ((frequencia < 1000) && (frequencia > 99))
  {
    (espa = 6);
    branco = " 00000";
  }
  if ((frequencia < 100) && (frequencia > 9))
  {
    (espa = 7);
    branco = " 00000";
  }
  lcd.setCursor(2, 0);
  lcd.print("Frequencia");
  lcd.setCursor(0, 1);
  lcd.print(branco);
  lcd.setCursor(espa, 1);
  sendFrequency(frequencia);
  lcd.print(frequencia);
  lcd.print(" Hz");
  if (irrecv.decode(&resultado))
  {
    armazenavalor = (resultado.value);
    if (armazenavalor == nn)
    {
      lcd.clear();
      lcd.setCursor(10, 0);
      lcd.print("in kHz");
      delay (1000);
      numerico();
      lcd.clear();
    }
    if (armazenavalor == ncd)
    {
      digi = (digi + 1);
      if (digi > 8 )
      {
        digi = 1 ;
      }
      lcd.setCursor(digi, 1);
      lcd.cursor();
      delay(1000);
    }
    if (armazenavalor == nce)
    {
      digi = (digi - 1);
      if (digi < 1 )
      {
        digi = 8 ;
      }
      lcd.setCursor(digi, 1);
      lcd.cursor();
      delay(1000);
    }
    if (armazenavalor == nsobe) //soma
    {
      do
      {
        degrau = degrau * 10;
        i = i + 1;
      } while (i < (10 - digi));
      frequencia = frequencia + degrau;
      delay(500);
      i = 1;
      degrau = 0.1;
    }
    if (armazenavalor == ndesce) //abaixa
    {
      do
      {
        degrau = degrau * 10;
        i = i + 1;
      } while (i < (10 - digi));
      frequencia = frequencia - degrau;
      delay(500);
      i = 1;
      degrau = 0.1;
    }
    lcd.noCursor();
    irrecv.resume();
  }
  num = 0;
}

void tfr_byte(byte data)
{
  for (int i = 0; i < 8; i++, data >>= 1) {
    digitalWrite(DATA, data & 0x01);
    pulseHigh(W_CLK);   //after each bit sent, CLK is pulsed high
  }
}

// Send frequency and command word to AD9850
void sendFrequency(double frequencia) {
  int32_t freq = frequencia * 4294967295 / (125000000 + FREQCORR); // note 125 MHz clock on 9850
  for (int b = 0; b < 4; b++, freq >>= 8) {
    tfr_byte(freq & 0xFF);
  }
  tfr_byte(0);
  pulseHigh(FQ_UD);
}

void numerico() {
  // put your main code here, to run repeatedly:
  while (num == 0) {
    if (irrecv.decode(&resultado))
    {
      armazenavalor = (resultado.value);
      if (armazenavalor == n1)
      {
        letra = "1";
        palavra = palavra + letra;
        delay (500);
      }
      if (armazenavalor == n2)
      {
        letra = "2";
        palavra = palavra + letra;
        delay (500);
      }
      if (armazenavalor == n3)
      {
        letra = "3";
        palavra = palavra + letra;
        delay (500);
      }
      if (armazenavalor == n4)
      {
        letra = "4";
        palavra = palavra + letra;
        delay (500);
      }
      if (armazenavalor == n5)
      {
        letra = "5";
        palavra = palavra + letra;
        delay (500);
      }
      if (armazenavalor == n6)
      {
        letra = "6";
        palavra = palavra + letra;
        delay (500);
      }
      if (armazenavalor == n7)
      {
        letra = "7";
        palavra = palavra + letra;
        delay (500);
      }
      if (armazenavalor == n8)
      {
        letra = "8";
        palavra = palavra + letra;
        delay (500);
      }
      if (armazenavalor == n9)
      {
        letra = "9";
        palavra = palavra + letra;
        delay (500);
      }
      if (armazenavalor == n0)
      {
        letra = "0";
        palavra = palavra + letra;
        delay (500);
      }
      // xero = xero + ero;
      //lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print(palavra);
      lcd.print("kHz");
      // delay(2000);
      if (armazenavalor == nncfm)
      {
        palavra = (palavra + "000");
        numero = palavra.toInt();
        lcd.setCursor(0, 1);
        if (numero > 45000000) {
          (numero = 45000000);
        }
        if (numero < 1000) {
          (numero = 1000);
        }
        frequencia = numero;
        lcd.print(numero);
        freq = numero;
        palavra = "";
        letra = "";
        numero = 0;
        num = 1;
        delay(1000);
      }
      irrecv.resume();
    }
  }
}



Arquivos .INO de programação

Identificador de teclas do controle remoto

Programa pricipal -Arduino VFO DDS

Qualquer duvida escrevam

73 de py2ohh miguel












domingo, 20 de dezembro de 2015

Primeiro programa

Ola amigos

Como nosso trabalho é atualmente para aprender, o material a ser utilizado deve ser sem solda. quando terminarmos o projeto, ai sim podermos soldar.
Não vou ficar explicando como instalar software (veja abaixo o link para instalação da IDE do arduino no seu PC).
As placas compradas prontas no Brasil ou na China já tem o bootloader instalado, a exceção é caso o amigo monte uma placa, ai sim devera instalar o bootloader (que é um aplicativo interno que carrega os programas na memória interna do arduino), no link abaixo voce encotra maiores explicações.
Em caso de duvidas, técnicas ou para comprar peças por favor escreva em comentários ou mande um email  para py2ohhARROBAyahoo.com.br (substitua ARROBA por @ ).

Para iniciar nosso trabalho precisaremos do seguinte material :
Arduino Uno
Bread board
LCD 16x2 (1602) com backlight - com pinos  soldados (macho ou femea)
Fios para conexão
Resistor de 220 Ohms
Trimpot de 10k

Os pinos soldados no LCD podem ser femea


Ou macho

No Ebay é possível encontrar 10 peças de 40 pinos macho ou femea saem por menos de 3 Reais  com frete grátis. (procure por 40 PIN HEADER).

As conexões devem ser feitas conforme diagrama



Esquema elétrico



 

Programando
Para facilitar a programação o arduino tem muitas bibliotecas que auxiliam muito na elaboração dos programas (sketches), estas bibliotecas geralmente acompanham o programa do arduino (IDE), algumas novas desenvolvidas por colaboradores podem ser adicionadas facilmente e geralmente são compactadas em arquivos .ZIP (e são usadas assim mesmo).
No nosso caso vamos usar a biblioteca LiquidCrystal.h, que já esta disponível, desde a instalação do IDE do arduino ( esta instalação deve ser feita antes de tudo  veja informações no site http://playground.arduino.cc/Portugues/HomePage )

Primeiro sketch
Vamos escrever Arduino VFO no LCD

/*
  Este programa é somente um cabeçalho para o programa que estamos
  fazendo, o VFO DDS ...assim escreveremos na primeira linha
  "ARDUINO VFO" ....e fica por 5 segundos antes de
  iniciar o programa
  Praticamente todo display LCD 16x2 funciona com esta library.
  Depois faremos algumas intervenções no programa.

 
  Conexões :
 * LCD RS pino 4 para digital pino 12
 * LCD Enable pino 6 ´para digital pino 11
 * LCD D4  para digital pino 5
 * LCD D5 para digital pino 4
 * LCD D6 para digital pino 3
 * LCD D7 para digital pino 2
 * LCD R/W para terra GND

 */

// inclua o codigo da library (biblioteca)
#include <LiquidCrystal.h>

// ao iniciar devemos direcionar os pinos do LCD aos pinos do Arduino
// LiquidCrystal lcd(RS, Enable, D4, D5, D6, D7) estes são os pinos do LCD
// que estão ligados a estes pinos do Arduino :
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// se por acaso o pino 11 do arduino estiver sendo usado por outro dispositivo
// podemos usar o pino 13 para ligar o enable do lcd e alinha ficaria assim:
//LiquidCrystal lcd(12, 13, 5, 4, 3, 2);
void setup() {
  // Iniciaremos o LCD, setando o mumero de colunas e lihas
  lcd.begin(16, 2);
  // Escreva a mensagem no LCD
  lcd.print("ARDUINO VFO");

  delay (5000); //espera 5000ms ou 5s
 lcd.clear() ; //limpa a tela do LCD
}

void loop() {
 
}

O setch sem comentarios fica assim


#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
   lcd.begin(16, 2);
   lcd.print("ARDUINO VFO");
   delay (5000); 
   lcd.clear() ; 
}

void loop() {
}

Pode copiar este sketch para o Arduino complilar e depois carregar no Arduino (não esqueça de acertar o tipo de chip e da porta serial de comunicação na IDE - programa -do Arduino).

Na continuação deveremos colocar  ARDUINO  VFO no centro da primeira linha e na segunda linha seu nome e seu prefixo... até lá


73 miguel












quarta-feira, 9 de dezembro de 2015

VFO DDS de 0 a 45MHz 1a parte

Ola amigos

Os programas para o arduino são em linguagem C e são relativamente simples.
Para desenvover um programa devemos colocar no papel o que desejamos, a maneira mais usual é com quadros sinóticos.
Na área de definições, escrevemos de qual tipo serão as variáveis, qual biblioteca usaremos etc.
Na área de setup, escrevemos quais parametros o programa vai trabalhar e geralmente iniciamos alguns dispositivos como a comunicação serial.
Na área de loop fica o programa que irá ficar infinitamente sendo lido e executado, segundo parametros definidos.

Uma outra forma de montar um programa é dividi-lo em partes e procurar executar uma de cada vez, eu como não conheço bem o arduino e estou aprendendo gosto deste modo de trabalho.

O programa inicial que vamos fazer é um VFO a DDS de 0 a 45MHz, com resolução de 1Hz, controlado por um controle remoto (comum de TV) e visualizado em um LCD de 2 linhas 16 caracteres (tipo1602). O processador pode ser o UNO ou o Nano (preferencialmente com conexão USB e cabo), o DDS poderá ser o AD9850 (R$35) ou AD9851 (R$45) os módulos podem ser encontrados no Ebay ou Aliexpress ou mercado nacional. O sensor de controle remoto eu retirei de uma TV sucateada, mas poderá ser o módulo IR disponível no mercado nacional.

Em termos de módulos devemos pensar que inicialmente devemos escrever o que é o aparelho e que fez ou é o proprietário.

Assim faremos nosso primeiro programa em C para o arduino.... no próximo tópico

73 de py2ohh miguel

terça-feira, 8 de dezembro de 2015

Apostilas do arduino

Ola amigos

Tem muito material bom na WEB, sobre o arduino.
Esta apostila é muito boa, não se preocupem em entender todo o código em C.
Mas ela servirá como referencia sempre.
http://ordemnatural.com.br/pdf-files/CartilhadoArduino_ed1.pdf

O site principal do arduino é este
https://www.arduino.cc/
Este site esta disponível em boa parte em português.

os colegas que conhecerem bons sites sobre o arduino podem mandar sua contribuição !

73 miguel

quinta-feira, 3 de dezembro de 2015

INICIANDO - o que comprar 1

Ola amigos

Para começar você precisa definir o que quer fazer :
1. Aprender arduino e fazer seus próprios equipamentos, ou conhecer melhor a plataforma entendendo o que esta fazendo.
2. Somente montar o que lhe interessa.

Se Vc  esta no item 1 ...terá que comprar varios itens que veremos a seguir.
Se vc esta no item 2 vc pode providenciar alguns materiais básicos ou compara quando o projeto que deseja montar esteja pronto. O ideal é o arduino nano que é menor tem as mesmas funções e pode ser soldado em outra palaca ou soquerteado.

Para interessados dos dois itens
Material indispensavel :
Computador pessoal com os programas do arduino.

Placa do arduino uno (para desenvolvimento ou aprendizagem) ou  nano (para montagens), os dois tipos com cabo USB, usando o processador atmega328.
Esta placa pode ser encontrada pronta no mercado nacional, existem varia lojas que vendem pelo correio.
Ou no mercado livre.
Em uma rapida pesquisa encontrei preços de 25 a 130 Reais e considere ainda o frete de 15 a 20 reais dependendo da região que vc mora.
A forma mais economica, porem demorada, é comprar da China recomendo comprar do Ebay (necessita conta no paypal e cartão internacional de credito) ou em sites como o Banggood ou Aliexpress que permitem o pagamento com boleto bancario. A demora geralmente é de dois meses
Os preços da China são melhores 8 reais para o nano e 13 reais para o UNO e com frete gratis.
A placa do Arduino pode ser montada a partir do chip (que custa cerca de R$6 na China e R$15 no Brasil) isto veremos em outra postagem

Material basico para os que querem aprender ou desenvolver projetos com o arduino
Protoboard  existem varios modelos, recomendo pelo menos uma de 830 pontos (R$7,70) e outra de 170 pontos  (R$2,70) - preços na China.
Os fios para ligação podem ser de cabos telefonicos rigidos, ou comprados prontos

Continua na proxima postagem - favor compartilhar suas experiencias com compra ....