Avançar para o conteúdo principal

Apresentação da Placa Freedom FRDM-KL25Z


Olá a todos!
O artigo de hoje é dedicado aos adeptos dos micro-controladores e suas plataformas de avaliação e desenvolvimento. Estas placas são úteis para prototipagem rápida de aplicações baseadas em micro-controladores. 
Vamos hoje falar da placa Freedom FRDM-KL25Z. Com um custo na ordem dos 20€, esta placa usa um micro-controlador Kinetics da série L, de 32 bits, mais propriamente o KL25Z128VLK, baseado no ARM® Cortex™-M0+. Com uma frequência de relógio que chega aos 48MHz, 128K de flash e muitos portos analógicos, digitais, e PWM. é sem duvida promissora a nível de possibilidades e desempenho.
 
FRDM-KL25Z NXP USA Inc. | FRDM-KL25Z-ND DigiKey Electronics
 Fig. 1 - ARM® Cortex®-M0+ MCU 32-Bit Embedded Evaluation Board

A forma da placa e do seu pinout, permite usar placas de expansão desenhadas para o Arduino R3, tendo no entanto em atenção que esta placa FRDM-KL25Z trabalha com 3.3V. Devemo-nos portanto assegurar da compatibilidade dos "shields" Arduino com os 3.3V.

 Fig.2 - Pinout da placa KL25Z

Na fig. 2 podemos ver o pinout da placa. Os pinos exteriores estão dispostos de forma a assegurar a compatibilidade com as "shields" do Arduino Uno R3. Os pinos interiores oferecem portos adicionais. Implementado diretamente na placa, temos um led RGB, um acelerómetro de 3 eixos e um sensor capacitivo de toque.
Antes de começar a usar a placa, é imprescindível dar uma leitura atenta ao manual disponível aqui: 
https://www.nxp.com/files-static/32bit/doc/user_guide/FRDMKL25ZUM.zip
Para programar a placa, vários ambientes de desenvolvimento podem ser usados. Eu atualmente uso o mbed, que pode ser facilmente acedido em qualquer computador com acesso à internet no endereço  https://www.mbed.com/en/ sem necessidade de instalar programas pesados no PC. Basta criar uma conta, selecionar o hardware que usa e começar a desenvolver os seus programas, ou experimentar os programas dos outros utilizadores que os publiquem. Os meus estão disponíveis aqui  
https://os.mbed.com/users/lmsousa/code/
Deixo aqui um exemplo de um pequeno programa que gera efeitos multicolores usando o LED tricolor.
https://os.mbed.com/users/lmsousa/code/PWM_Blink_V2//file/20358798a986/main.cpp/


#include "mbed.h"
#define pause 0.015
PwmOut rled(LED_RED);
PwmOut gled(LED_GREEN);
PwmOut bled(LED_BLUE);
 
int main()
{
    rled=1;
    gled=1;
    bled=1;
    
    while(1) {
        for(float p = 1.00f; p > 0.00f; p -= 0.01f) {
            rled = p;
            wait(pause);
        }
        for(float p = 0.00f; p < 1.00f; p += 0.01f) {
            rled = p;
            wait(pause);
        }
        wait (0.5);
        for(float p = 1.00f; p > 0.00f; p -= 0.01f) {
            gled = p;
            wait(pause);
        }
        for(float p = 0.00f; p < 1.00f; p += 0.01f) {
            gled = p;
            wait(pause);
        }
        wait (0.5);
 
        for(float p = 1.00f; p > 0.00f; p -= 0.01f) {
            bled = p;
            wait(pause);
        }
        for(float p = 0.00f; p < 1.00f; p += 0.01f) {
            bled = p;
            wait(pause);
        }
        wait (0.5);
        
        
        for(float p = 1.00f; p > 0.00f; p -= 0.01f) {
            rled = p;
            gled=p;
            wait(pause);
        }
        for(float p = 0.00f; p < 1.00f; p += 0.01f) {
            rled = p;
            gled=p;
            wait(pause);
        }
        wait (0.5);
        for(float p = 1.00f; p > 0.00f; p -= 0.01f) {
            rled = p;
            bled = p;
            wait(pause);
        }
        for(float p = 0.00f; p < 1.00f; p += 0.01f) {
            rled = p;
            bled = p;
            wait(pause);
        }
        wait (0.5);
 
        for(float p = 1.00f; p > 0.00f; p -= 0.01f) {
            gled = p;
            bled = p;
            wait(pause);
        }
        for(float p = 0.00f; p < 1.00f; p += 0.01f) {
            gled = p;
            bled = p;
            wait(pause);
        }
        wait (0.5);
    }
}
            

Após a fase de familiarização, depois de conhecer a placa e o ambiente de desenvolvimento escolhido, pode entregar-se a projetos mais complexos.
Divirta-se

Comentários

Mensagens populares deste blogue

Guia de utilização da placa KL25Z

Olá a todos, Fig. 1 KL25Z Vista Superior Num artigo anterior sobre esta mesma placa, a KL25Z, fiz uma pequena apresentação que permite ter uma ideia das suas capacidades. Como vejo muito potencial nesta placa, tendo em conta o seu baixo preço, decidi escrever este segundo artigo. Vou desta vez detalhar um pouco mais, indo mais ao pormenor, permitindo a sua utilização a quem porventura não esteja muito familiarizado com estas placas nem com os seus ambientes de desenvolvimento, os chamados IDE (Integrated Development Environment). Introdução A grande vantagem dos microcontroladores sobre a lógica programada, é a sua flexibilidade. Uma máquina comandada por microprocessadores ou microcontroladores pode ser adaptada a um novo trabalho, a uma nova tarefa, bastando para isso alterar o programa, que não são mais que instruções sequenciais que o microprocessador reconhece e executa.  Uma máquina desenhada com lógica fixa, (portas lógicas discretas) não será capaz de efetuar ...

Projecto: PWM - o que é e como funciona

Olá! Todos já ouviram falar de PWM, mas nem todos sabem o que é e como funciona. O principal objectivo deste projecto é ajudar as pessoas a entender melhor os conceitos por detrás do PWM e perceber como funciona. Decidi portanto construir uma placa de encaixe no Arduino (Arduino shield) que usando as saídas  PWM do Arduino, e algum código simples, consegue demonstrar com ajuda de um osciloscópio, como funciona o PWM. Todo o projeto está descrito neste link : https://create.arduino.cc/projecthub/lmsousa/pwm-demonstration-board-using-arduino-a17d0f?ref=user&ref_id=391612&offset=1   Para uma introdução ao PWM, não deixe de visitar esta página .