Acompanhe minha novela com a OI

Há alguns dias venho travando uma luta com a Oi pela instalação de um Velox avulso. Não que o fixo e a Oi que venda casada, então estamos em um impasse.

Acompanhem http://www.ldutra.com.br/oi/

ACS 712 em corrente alternada (CA)

Depois de algumas pessoas terem me dito que o ACS712 retorna valores negativos em Corrente Alternada (CA) resolvi dar uma pesquisada e encontrei um Sketch que pode resolver o problema.

Ainda não testei o código, mas compilou legal no IDE 1.5.2. Pelo código é para funcionar sem muita dificuldade.

Neste post também estou testando a forma correta de colocar códigos no blog. Da forma como eu vinha fazendo não dava para copiar e colar no IDE.

//retirado de <a href="http://www.seriallink.com.br/forum/viewtopic.php?f=46&t=1900">http://www.seriallink.com.br/forum/viewtopic.php?f=46&t=1900</a>
const int sensorPin = A0;
float sensorValue_aux = 0;
float sensorValue = 0;
float currentValue = 0;
float voltsporUnidade = 0.0048828125;

void setup() {

Serial.begin(9600);
}

void loop() {

 for(int i=500; i>0; i--)
 {
 sensorValue_aux = (analogRead(sensorPin) -511); // le o sensor na pino analogico A0 e ajusta o valor lido ja que a saída do sensor é vcc/2 para corrente =0
 sensorValue += pow(sensorValue_aux,2); // soam os quadardos das leituras no laco
 }

sensorValue = (sqrt(sensorValue/ 500)) * voltsporUnidade; // finaliza o calculo da méida quadratica e ajusta o valor lido para volts
 currentValue = (sensorValue/66)*1000; // calcula a corrente considerando a sensibilidade do sernsor (66 mV por amper)

 // mostra o resultado no terminal
 Serial.print("corrente = " );
 Serial.print(currentValue);
 Serial.print("\n" );
 sensorValue =0;
 delay(150);

}

Com esse código é possível medir corrente de lampadas, eletrodomésticos e outros.
O que o código faz é uma transformação quadratica para que os resultados sejam mostrados da forma correta. No caso da corrente contínua essa transformação não é necessária.

Finalmente chegou meu Arduino Due!!!

Imagem Finalmente meu DUE chegou, depois de dois meses de espera. Ainda não tive tempo de fazer testes mais profundos com ele (Só rodou BLink até agora). Eu gosto do UNO pela mobilidade do microcontrolador, por desenvolvo o projeto no arduino e depois transporto só o ATMEGA328 para a nova placa. Com o DUE vai ser um pouco mais complicado fazer isso, então vou continuar trabalhando mais com meu UNO. hehehehe

Assim que eu tiver mais detalhes do DUE posto por aqui.

Código para Shield Ethernet e módulos de relé

Segue código que encontrei na net para uso com shields de ethernet e módulos com relés.

Verificado com o IDE 1.5 e testado em um Arduino UNO

Código:


#include <Dhcp.h>
 #include <Dns.h>
 #include <Ethernet.h>
 #include <EthernetClient.h>
 #include <EthernetServer.h>
 #include <EthernetUdp.h>
 #include <util.h>

/*

Original Version by Poldi
 modified by Katsu

the functions readString.append() and readString.contains() where replaced

*/

#include <SPI.h> // insert by Katsu
 // #include <WString.h> removed by Katsu

byte mac[] = {
 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
 IPAddress ip(192,168,0, 177);
 EthernetServer server(80);

int Pin3 = 3;
 int Pin4 = 4;
 int Pin5 = 5;
 int Pin6 = 6;

String readString = String(100); // string for fetching data from address
 boolean Pin3ON = false; // Status flag
 boolean Pin4ON = false;

void setup(){
 Ethernet.begin(mac, ip);
 server.begin();
 pinMode(Pin3, OUTPUT);
 pinMode(Pin4, OUTPUT);

Serial.begin(9600); }

void loop(){

// Create a client connection
 EthernetClient client = server.available();
 if (client) {
 while (client.connected()) {
 if (client.available()) {
 char c = client.read();

//read char by char HTTP request
 if (readString.length() < 100) {

//store characters to string
 // readString.append(c); removed by Katsu
 readString = readString + c; // insert by Katsu
 // very simple but it works...
 }

Serial.print(c); //output chars to serial port

if (c == '\n') { //if HTTP request has ended

// readString.contains() replaced with readString.indexOf(val) > -1 by Katsu
 // indexOf locates a character or String within another String.
 // Returns the index of val within the String, or -1 if not found.
 if(readString.indexOf("3=einschalten") > -1) {
 digitalWrite(Pin3, HIGH);
 Serial.println("Pin 3 eingeschaltet!");
 Pin3ON = true;
 }
 if(readString.indexOf("3=ausschalten") > -1){
 digitalWrite(Pin3, LOW);
 Serial.println("Pin 3 ausgeschaltet!");
 Pin3ON = false;
 }
 if(readString.indexOf("4=einschalten") > -1) {
 digitalWrite(Pin4, HIGH);
 Serial.println("Pin 4 eingeschaltet!");
 Pin4ON = true;
 }
 if(readString.indexOf("4=ausschalten") > -1){
 digitalWrite(Pin4, LOW);
 Serial.println("Pin 4 ausgeschaltet!");
 Pin4ON = false;
 }

if(readString.indexOf("all=Alles+aus") > -1){
 digitalWrite(Pin3, LOW);
 digitalWrite(Pin4, LOW);
 Serial.println("Alles ausgeschaltet");
 Pin3ON = false;
 Pin4ON = false;
 }
 //--------------------------HTML------------------------
 client.println("HTTP/1.1 200 OK");

client.println("Content-Type: text/html");

client.println();

client.print("<html><head>");

client.print("<title>Arduino Webserver Poldi</title>");

client.println("</head>");

client.print("<body bgcolor='#444444'>");

//---Überschrift---
 client.println("<br><hr />");

client.println("<h1><div align='center'><font color='#2076CD'>Arduino Webserver 1.0 by Poldi</font color></div></h1>");

client.println("<hr /><br>");
 //---Überschrift---

//---Ausgänge schalten---
 client.println("<div align='left'><font face='Verdana' color='#FFFFFF'>Ausg&auml;nge schalten:</font></div>");

client.println("<br>");

client.println("<table border='1' width='500' cellpadding='5'>");

client.println("<tr bgColor='#222222'>");

client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Ausgang 3<br></font></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=3 value='einschalten'></form></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=3 value='ausschalten'></form></td>");

if (Pin3ON)
 client.println("<td align='center'><font color='green' size='5'>ON");
 else
 client.println("<td align='center'><font color='#CFCFCF' size='5'>OFF");

client.println("</tr>");

client.println("<tr bgColor='#222222'>");

client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Ausgang 4<br></font></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=4 value='einschalten'></form></td>");

client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=4 value='ausschalten'></form></td>");

if (Pin4ON)
 client.println("<td align='center'><font color='green' size='5'>ON");
 else
 client.println("<td align='center'><font color='#CFCFCF' size='5'>OFF");

client.println("</tr>");
 client.println("</tr>");

client.println("</table>");
 client.println("<br>");

client.println("<form method=get><input type=submit name=all value='Alles aus'></form>");

client.println("</body></html>");

//---Ausgänge schalten---

//clearing string for next read
 readString="";

//stopping client
 client.stop();
 }}}}}

Mapa para toca do Urso no AC3

 

A marcação em vermelho na foto mostra o local onde fica a toca do urso que aparece em uma das missões dos caçadores e onde caço ursos quando preciso de dinheiro.
20130323_215123

[Dica] Php no IIS – Erro 401.3

Recebi a tarefa de instalar o PHP no servidor da empresa, dei uma olhada na net e conclui que seria coisa fácil, nada complicado. Fiz o download dos arquivos necessários e fui para salão do servidor, isso as 15:00. Fiz tudo conforme um dos vários tutoriais que achei e em poucos minutos o PHP estava instalado,  então hora de testar. Assim que fiz o primeiro acesso e cliquei no arquivo com o código do phpinfo apareceu uma caixa pedindo lógica e senha,  quando cliquei em cancelar “Erro 401.3 Permissão negada”.  Varri as pastas do site olhando as permissões e nada de errado,  depois notei que só os arquivos Php estavam dando esse erro.  Refiz todo o processo dos tutoriais e nada. Quando eu colocava a senha de acesso do servidor o phpinfo aparecia,  quando não colocava só erro 401.3. As 17hrs finalmente achei em um fórum gringo um citação do que podia ser,  o usuário convidado da Internet tem que ter permissão de acesso na pasta do Php. Não só a pasta,  mas todos os arquivos dentro tem que estar estado para pelo menos leitura para o IUSR.  Foi só fazer essa alteração e pronto. Então é isso, fica a dica.

PCB com tinta para máscara de solda (PCB UV Curable Solder Mask)

Bom pessoal, ainda não o tutorial para usar as tintas para máscara de solda que são vendidas no Ebay, mas pelo menos fiz algumas fotos para mostrar como ficam as placas depois de reveladas.

Comprei essa tinta para mascara de solda pelo Ebay. Não sai caro e da pra fazer muitas placas. Um potinho com 100g saiu por uns R$15,00 na cor azul e R$12,00 o verde. No método fotográfico, a tinta contém um fotossensibilizante que reage com alguma onda luminosa e se polimeriza, onde não pega a luz não ocorre a polimerização. Existe vários tipos de tinta para esse fim, mas o que muda de uma tinta para outra são só alguns detalhes no procedimento e a forma de fazer a “revelação” da foto.

Basicamente o que faço é o seguinte:

  1. Preparo do fotolito (pode ser laser ou jato de tinta, mas a laser oferece qualidade melhor);
  2. limpeza da placa;
  3. aplica uma quantidade pequena de tinta numa das extremidades da placa e cobre com um plastico bem fino e transparente (Tenho usado saquinhos para embalar bijuterias, fácil de achar nessas lojas de R1,99);
  4. passa um rolo, suavemente, sobre o plastico para espalhar a tinta sobre a placa;
  5. Coloca o fotolito sobre a placa (não precisa retirar o plastico que foi usado para aplicar a tinta. No fórum que aprendi a usar essa tinta o cara passava a tinta direto na transparência, mas colocando esse plastico entre a placa e o fotolito vc pode usa-lo mais vezes);
  6. Leva para polimerizar;
  7. Remove a tinta não sensibilizada com Álcool isopropílico, gasolina ou solvente. Eu uso Álcool isopropílico e algodão;
  8. Corroer (Eu tenho usado ácido muriático + água oxigenada);

Essa tinta para mascara de solda que tenho usado polimeriza com raios UV, então tenho usado uma lampada de luz negra de 25W (Emite UV-A, fácil de achar e custa uns R$20,00) por 35 minutos.

As  tintas para silkscreen polimerizam bem mais rápido, mas não consegui correr as placas.

Uso a tinta para fazer a PCB, para fazer a marcara depois da corrosão e em outras placas quando precisam de reparo na mascara.

Esse final de semana ia fazer um tutorial, mas não rolou. Mesmo assim, só para mostrar a um colega como funciona o processo fiz rapidinho uma placa. Segue algumas fotos:

Fiz tudo bem rápido, pois era só pra mostrar para um colega, então é possível um resultado bem melhor.

No fotolito que usei tinha vários circuitos iguais de aproximadamente 5,5 x 2,1cm para confecção de um Arduino básico com o ATmega328P, mas errei no tamanho dos pads e vou refazer a placa. Como era só pra demonstração usei o fotolito errado mesmo.

Pote de tinta com 100g

Pote de tinta com 100g

Placa com a tinta ja polimerizada

Placa com a tinta ja polimerizada

Detalhe da impressão na placa

Detalhe da impressão na placa

Detalhe da impressão na placa

Detalhe da impressão na placa

Detalhe da impressão na placa

Detalhe da impressão na placa

Lampada usada para sensibilização

Lampada usada para sensibilização

Plástico com a tinta não polimerizada

Plástico com a tinta não polimerizada

Dicas – confecção de PCB por método fotográfico (breve)

Consegui finalmente adaptar o método fotográfico de confecção de PCB para uma das tintas que tenho disponível. Quero ver se faço um passo a passo logo logo.:-)  Pra adiantar, as placas que fiz até agora ficaram muito boas e o custo é baixo. A tinta que estou usando custa entre U$5 e U$8, algo em torno dos R$16,00 (Ebay), por 100g (Da pra fazer muitas placas).
Aguardem…

Contas tipos ALIAS no Outlook.com

Quem tem contas antigas de e-mail e uma vida ativa na internet sabe como é difícil gerenciar SPANS hoje em dia. Minha conta do Gmail tem mais de 9 anos de uso (essa conta ainda é da época que para ter um gmail era necessário um convite e cada pessoa convidada só podia convidar mais 10).

O problema maior é que uso a mesma conta para quase tudo e dai surge a minha dor de cabeça diária para separa o que é útil do que é inútil. Já criei outras contas de e-mail, para não fazer cadastro em foruns, por exemplo, com a minha conta pessoal, mas quem é que aguenta fazer login e monitorar várias contas todos os dias? Recentemente descobri uma solução para o meu problema, os ALIAS do outlook.com. A conta Alias não é novidade, pois já estava disponível no hotmail, mas eu nunca tinha usado.

O que é a conta Alias no outlook.com/hotmail?

É um endereço de e-mail criado dentro de um endereço já existente. 🙂

Por que criar um alias? Algumas pessoas gostam de usar vários endereços de email para diferentes atividades. Por exemplo, você pode usar um endereço para procurar emprego e outro para fazer compras online. Dessa forma, as mensagens enviadas a esses endereços podem ser mantidas em pastas separadas.

Digamos que eu tenha um e-mail chamado zeblog@live.com, mas não quero usar esse e-mail para cadastros na internet, então eu crio um ALIAS dentro dele. O Alias pode ficar como uma pasta dentro do e-mail principal, podendo ser usada para recebimento de e-mails e também para envio.

 

Entre na sua conta do Outlook.com/hotmail/MSN/Live

Caixa de entrada

 

Vá em configurações (1) e clique em Mais configurações (2)

Caixa de entrada 2

 

Clique em “Criar um alias”

Criar alias

Escolha o endereço da conta Alias. As opções de endereço são @outlook.com, @hotmail.com, @hotmail.com.br ou @live.com

Escolher email

Nesta tela é exibido a opção para criar uma pasta para receber os e-mails enviados para o Alias que acabamos de criar ou enviar para caixa de entrada. Eu, particularmente, prefiro usar uma pasta, pois fica mais fácil de visualizar os e-mails, mas vai depender da preferencia de cada um.

confirmação

 

Na minha pagina de entrada o Alias aparece como uma pasta. A vantagem do alias sobre criar uma nova conta é que não é necessário preencher todo o cadastro e não é necessário fazer vários logins e senhas para olhar todos os e-mails. Fazendo apenas o login na conta principal a pessoa tem acesso aos e-mails da conta principal e dos Aliases criados nela.

Caixa de entrada com alias

 

Os Alias podem ser usados também para enviar e-mail e não somente para receber

Escolher para enviar

O Alias é facilmente descartado nas opções de conta da Microsoft, onde podemos facilmente excluir o Alias sem perder a conta principal. 🙂

Excluir