-
Posts
567 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que test man*~ postou
-
Projetos com Avr : Design, Programação em Basic e Assembly
test man*~ respondeu ao tópico de aphawk em Microcontroladores
Ai está o vídeo do robô, mostrando alguns movimentos básicos e o sistema de feedback para ler a posição dos servos, que posteriormente será usado para que a pessoa possa ensinar o robô a se mover, facilitando a execução de movimentos mais complexos... Seria bom se fosse motor de passo daí daria para fazer movimentos mais suaves com aceleração, desaceleração e sem jitter... Posta fotos do seu projeto CNC/3D Printer ai Paulão @aphawk... -
Projetos com Avr : Design, Programação em Basic e Assembly
test man*~ respondeu ao tópico de aphawk em Microcontroladores
Sim @aphawk , a do link não serve... Mas se eu fosse usinar somente plásticos, MDF, e PCBs, eu acho que eu compraria uma desta, se eu quisesse comprar completa, mas acho que prefiro que ela não venha com os drivers motores e tal, dai você pode escolher um mais forte ou mais fraco de acordo com o que você quiser fazer... A ideal para mim, no mundo perfeito, seria esta; Com motores Nema 23 com 425oz.in; Spindle AC 800W; Inversor de frequência WEG ; Sistema de refrigeração a água radiador, bomba; Os drivers seriam TB6600, compraria um pronto e realizaria algumas modificações; Controlador Arduino; Para o controle PID de velocidade do spindle, monitoramento de temperatura, etc. um PIC ou um AVR; Também construiria um sistema para aspiração do pó. (a parte da montagem, quebrar cabeça e tal, é a parte que eu mais gosto =D) Mas como o @Intrudera6 disse: -
Projetos com Avr : Design, Programação em Basic e Assembly
test man*~ respondeu ao tópico de aphawk em Microcontroladores
@Intrudera6 Estou querendo terminar ele logo, a interface será com o labVIEW tenho ele meio que na mente, comunicação, verificação de erro (CRC) ... mas vou ter que aguardar um pouco ... @aphawk Show, mas Paulão, não seria melhor comprar uma cnc pronta? Tipo, já que é só placa de circuito impresso a CNC pode ser menos rígida, olha ai (você pode usar aquele tal de autoleveling que ai fica show): Review: Vendendo na gear best, mas você acho no Aliexpress e Ebay: http://www./3d-printers--3d-printer-kits/pp_356128.html?lkid=10419417 Eu estou querendo uma para criar umas bugigangas em aluminio faí a CNC deve ser mais rígida e um monte de problema começa a aparecer HEHE... -
Projetos com Avr : Design, Programação em Basic e Assembly
test man*~ respondeu ao tópico de aphawk em Microcontroladores
@aphawk Opa, voltou em , show de bola... Ele até se move mas o software para controle ainda não está pronto, estou pensando na melhor forma de desenvolvê-lo, porém esse desenvolvimento será bem devagarzinho estou meio que em uma situação estranha hehe, capaz que eu tenha que postergar bastante esse projetinho ... Depois posto o vídeo dele fazendo alguns movimentos! Muito bom ver você de volta!!! -
6 pics slave 1 PIC máster por serial
test man*~ respondeu ao tópico de rodrigocirilo em Microcontroladores
Sim, porém o código exemplo usa o printf(); Apenas corrigindo o que eu disse; Mesmo usando um driver full duplex (como o MAX488) será necessário que o escravo acione a transmissão (DI = 1) e assim que terminar de transmitir ele terá que desativá-la (DI = 0)... -
A eeprom demora para gravar dados, para ler ela é como qualquer outro dispositivo i2c...
-
6 pics slave 1 PIC máster por serial
test man*~ respondeu ao tópico de rodrigocirilo em Microcontroladores
Aqui está o código exemplo (CCS 5.046 - Proteus 8.2). https://www.4shared.com/rar/Wp72oX-tba/RS485_PIC_CCS_5046_PROTEUS_802.html? Obs: Não use este código no seu projeto aprenda com ele e crie o seu... Este código possui várias falhas, não usa buffer de recepção e transmissão serial, não usa interrupções, o PIC fica parado esperando os dados terminarem de ser enviados, usa-se delays desnecessários, não há verificação de erro (CRC), não há time out, etc. está cheio de problemas (criei na correria) serve apenas como um ponta pé inicial. Obs 2: Se você usar um driver full duplex você eliminará a necessidade de selecionar entre os modos de transmissão e recepção. -
6 pics slave 1 PIC máster por serial
test man*~ respondeu ao tópico de rodrigocirilo em Microcontroladores
Uma solução seria usar alguns MAX485/487/outro (half duplex) 488/490 (full duplex) daí você faz um esquema para que todas as mensagem que forem enviadas pelo mestre comecem com o endereço do escravo, todos os escravos recebem a mensagem mas apenas o escravo dono do endereço responde. O mestre também deverá ter um endereço pois quando um escravo responder a mensagem do mestre os outros escravos também receberão a mensagem. Esquema básico: Outra possibilidade seria usar um i2c bus estender P82B715 ou P82B96 mas se não me engano o máximo que eles estendem o barramento é 50m. Existem PICs com várias portas seriais (como o PIC24FJ64GA406), neste caso você poderia usar uma para cada escravo... Se você pedir amostras a Microchip te enviará. Se bem que pela distância tem que ser 485 mesmo =( -
microcontrolador PIC da família 16F
test man*~ respondeu ao tópico de Vitória18 em Microcontroladores
[edit] Removido a resposta pronta http://www.microcontrollerboard.com/pic-timer0-tutorial.html Joque os vários valores de prescaler na fórmula que você achará um que gerará exatamente uma contagem de 204,8us. -
huHAuHAhahHAHHAh, se for pra pagar quem deve ganhar é o Kirit Chatterjee eu não fiz coisa alguma, apenas reproduzi o que ele postou =D... Bacana, eu também penso em usar este filtro em um CLP pra resolver um problema...
-
Problema serial Arduino baud 115200
test man*~ respondeu ao tópico de test man*~ em Microcontroladores
Resolvi criar um código para calcular o CRC de 8 bits usando uma lookup table. funcionou, depois eu posto aqui... -
Terminei os testes com o filtro, é muito bom mesmo, eu deveria ter montado um antes =D... Os gráficos mostram a leitura de um LM35, sem média e sem capacitor na entrada analógica, apenas uma leitura e ela passa pelo filtro. A matemática do filtro está sendo feita no AVR a conversão para temperatura está sendo feita no LabVIEW. Se a pessoa possuir o Matlab da para discretizar a função informando a taxa de amostragem e a frequência de corte, ai fica show. Download (Código, Interface, Esquema): Arquivos para teste usando o LM35 Arquivos para teste usando o potenciômetro Gráficos: Beta = 0,009; Taxa de atualização = 30ms Beta = 0,01; Taxa de atualização = 50ms Beta = 0,045; Taxa de atualização = 50ms (Filtro já começa a deixar passar alguma coisa) Beta = 0,065; Taxa de atualização = 50ms
-
Transformar projeto com protoboard, fios em uma placa única.
test man*~ respondeu ao tópico de Cristian Stoenica em Microcontroladores
Não sei se ele gera esse tal de Gerber aí, mas existe o easyeda dá pra usar ele online: http://easyeda.com -
O ATmega328P não reconhece os dados correntanmente quando o baud da comunicação serial está configurado para 115200. No teste abaixo eu enviei 0 1 2 3 4 5 6 7 8 9 para a serial, sendo que a primeira sequencia estava com o conversor USB<>Serial da placa do Arduino e a segunda com um FT232RL. A velocidade máxima que não apresenta erro é 57600. Se enviar repetidas vezes o caractere 0 'zero' o símbolo que aparece será o mesmo... Mesmo estando errado o erro é sempre o mesmo. Então eu achei que o erro estava no conversor USB<>Serial da placa do Arduino. Resolvi remover o ATmega328P da placa e fazer o teste de loopback diretamente no conversor USB<>serial da placa Assim os dados foram e voltaram corretamente não houve erro algum, então quer dizer que se o ATmega328P estiver conectado acontece algum problema. Alguém ai sabe o porquê disso acontecer? Será que é por causa do resistor de 1KR nas linhas TX e RX?
-
Transformar projeto com protoboard, fios em uma placa única.
test man*~ respondeu ao tópico de Cristian Stoenica em Microcontroladores
Talvez um screwshield ou um protoshield o ajude: -
Ai está o gráfico, o código foi implementado no BASCOM mas faz a mesma coisa que o código acima faz inclusive o beta está com o valor de 0,025 a taxa de atualização é 50ms. Amanhã eu termino a interface, faço mais testes e postos o código, esquemático e interface labview... A entrada analógica do ATmega328P foi conectada a um potenciômetro. Plot 0 = Leitura antes do filtro plot 1 = Leitura depois do filtro região de visualização = 200 amostras Tempo visualizado = 10 segundos
-
int leitura_antes_filtragem; float leitura_apos_filtragem; float filtro_passa_baixa_beta = 0.025; // 0<ß<1 void main (void) { while(1) { // Realiza a leitura analógica do canal 0 leitura_antes_filtragem = read_adc(0); // Realiza a filtragem da leitura leitura_apos_filtragem = leitura_apos_filtragem - (filtro_passa_baixa_beta * (leitura_apos_filtragem - leitura_antes_filtragem)); // Agora a variável "leitura_apos_filtragem" contém o valor filtrado. } } Funcionamento: Vamos supor que o sistema está estável e o último valor lido foi 1000. leitura_apos_filtragem = 1000 Sendo que a próxima leitura teve o valor de 970. leitura_antes_filtragem = 970 O novo valor da leitura filtrada para um beta de 0,025 (resposta muito suavizada) será: leitura_apos_filtragem = 1000 - [0.025 * (1000 - 970)] leitura_apos_filtragem = 999,25 Esse valor só será alterado na próxima leitura analógica (a frequência com que as leituras ocorrem influencia no filtro). Suponhamos que a próxima leitura (que pode ter ocorrido após 200ms ou 2s ou 10s) foi de 950. leitura_antes_filtragem = 950 O novo valor da leitura filtrada será: leitura_apos_filtragem = 999.25 - [0.025 * (999.25 - 950)] leitura_apos_filtragem = 998,02 Assim o beta deve ser ajustado de acordo com a frequência das leituras e o sinal analógico em si... Vou ver se levanto alguns gráficos aqui, pena que não tenho o "Labview Interface For Arduino" instalado seria uma mão na roda... Depois posto os gráficos aqui.
-
Você quer filtro digital né? Eu estou meio que querendo usar um também, olha isso: https://kiritchatterjee.wordpress.com/2014/11/10/a-simple-digital-low-pass-filter-in-c/ Depois vou tentar usar e ver o resultado, para ficar mais rápido há uma alternativa, no link acima, que não usa variáveis float. LPF_Beta serve para "amaciar" a saída. int RawData; float SmoothData; float LPF_Beta = 0.025; // 0<ß<1 void main (void){ // LPF: Y(n) = (1-ß)*Y(n-1) + (ß*X(n))) = Y(n-1) - (ß*(Y(n-1)-X(n))); while(1){ // Function that brings Fresh Data into RawData RawData = GetRawData(); SmoothData = SmoothData - (LPF_Beta * (SmoothData - RawData)); } }
-
Coloca a frequencia de corte e o valor do capacitor que ele te dará o valor da resistencia e os demais dados "Calculate the R and C values for the filter at a given frequency": http://sim.okawa-denshi.jp/en/CRlowkeisan.htm
-
Projetos com Avr : Design, Programação em Basic e Assembly
test man*~ respondeu ao tópico de aphawk em Microcontroladores
Problema com o Proto Shield (Prototype Shield) e USBasp Estava com problemas ao tentar usar o USBaso conectado ao Prototype Shield para o Arduíno Mega, quando eu o usava conectado diretamente ao Arduíno ele funcionava normalmente mas quando eu tentava us-alo conectado ao Prototype Shield ele não conseguia se comunicar com o ATmega2560: Apertando o botão de RESET (mantendo o ATMega resetado manualmente) o USBasp conseguia se comunicar normalmente, ao medir a tensão do pino RESET percebi que ela ia para 2,6~3,2V quando o USBasp tentava se comunicar, essa tensão não é suficientemente baixa para colocar o ATmega2560 em reset para o programador poder se comunicar com ele. Depois de tentar várias coisas (Remover capacitores da linha de RESET, cortar o pad RESET EN do Arduíno) resolvi meio que fazer uma engenharia reversa da linha de RESET: O Proto Shield possui um resistor de 150R que acaba ficando em paralelo com o resistor de 10KR da placa do Arduíno (150||10K = 147.8); e esse conjunto fica em série com o resistor de 120R do USBasp... Daí quando o USBasp colocava 0 (zero) em seu pino de RESET para colocar o ATmega em RESET a tensão cai apenas para ~2,76V. Para solucionar o problema basta remover o resistor de 150R do Prototype Shield: Assim o problema é solucionado e a tensão de RESET começa a ir a zero. ATmega2560 detectado: -
Qual o formato dos arquivos do Arduino ?
test man*~ respondeu ao tópico de joseca2 em Microcontroladores
Já conseguiu? Você colocou o chip atmega puro no Proteus? Se sim você deve setar os fuses de acordo com os do Arduino, principalmente o bootrst (ou algo do tipo), clksel, 16MHz... No PIC você colocava só o clock e os fuses am junto com o hex/cof... Você também pode usar a plaquinha ponta no Proteus, como mostra este site: http://microcontrolandos.blogspot.com.br/2014/10/arduino-uno-para-proteus.html?m=1 -
Melhoras ai Paulão õ/
-
Projetos com Avr : Design, Programação em Basic e Assembly
test man*~ respondeu ao tópico de aphawk em Microcontroladores
Dando continuidade ao Robô xD... Aqui está o Protoshield com os amplificadores operacionais para as tensões de feedback dos servos, Zenner para tensão de referência, Buzzer, botão para pânico e o FT232. Não ficou tão bonito mas ao menos está funcional =D Aqui está o Gripper do robô montado, para pegar objetos usando sucção. Daqui a pouco chega na parte da programação hehe, a placa de controle faz praticamente tudo (eu ia criar uma, mas quando vi que já havia uma que fazia tudo que eu queria resolvi pegar uma pronta). O trabalho será só criar modos de execução do robô, como movimentos por ensinamento (ensinar ele a se mover com a mão), comando através da interface, controlar usando acelerômetro (talvez) e por ai vai. -
Valeu ai @ViniciusKruz Esqueci de falar... Eu removi o resistor que está em série com o diodo pois a bateria que estou usando é a CR2032 (não recarregável), mesmo assim acho que a qualidade desse carregar (conjunto diodo + resistor) é duvidosa . Outra coisa, a frequência do pino SQW não muda no meu DS3231, não consegui entender o porquê só fica em 1Hz... Escrevo no Control Register e depois leio ele para garantir que foi escrito corretamente mas mesmo assim a frequência não muda ...
-
Essa é uma biblioteca que fiz para o DS3231, o bacana desse RTC é que ele possui oscilador interno e faz o ajuste do mesmo automaticamente de acordo com a temperatura (que pode ser lida pelo usuário), o que o torna mais preciso. Além disso ele possui 2 alarmes. Porém ele não possui RAM disponível para uso geral como o DS1307 possui xD. Código para demonstrar o uso da biblioteca: Biblioteca (ds3231.c):
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais