A fonte já tinha ficado a funcionar da forma desejada, então a 2ª parte é ajeitar tudo, reforçar ligações e montar de forma a que fique tudo o mais sólido e resistente possível.
Antes de montar, estive a "aquecer" algumas resistências de potência... e enfim é vê-las ficar "quentinhas" eheh.
 A partir daqui começa o cortes de todos os fios dos rails não utilizados (-12V, -5V, 3.3V, 5V, etc).
Aqui foram feitas as ligações do "PWR_OK", do "PS_ON", e obviamente para a ventoinha.
Aproveitei para ligar um LED no "PWR_OK" para sinalizar o bom funcionamento da fonte.
Antes de fechar a caixa e bloquear o potenciómetro, dei um ajuste final para ficar o mais próximo possível do valor de tensão desejado, 13.8V.
Depois foi só certificar-me de que todos os fios estavam bem presos (led, ventoinha, interruptor, ...) e fechar o melhor possível a caixa.
Por enquanto não tenho um dummy load para corrente constante e testar a potência máxima da fonte.
Teoricamente será uma fonte com uma potência de 138W.

Mais um hack completo :).

"A necessidade aguça o engenho", esta é uma grande verdade e este é mais um artigo que prova isso.
Este fim de semana consegui arranjar algum tempo livre para levar a cabo uma ideia que queria ter posto em prática há mais tempo: transformar uma fonte de alimentação de computador para uma fonte de alimentação a usar como recurso no radio amadorismo.
Devido à sua construção e para o fim das mesmas, esta fontes têm um bom nível de filtragem, potência e portabilidade.
A ideia é conseguir alterar o rail superior, de +12V, para atingir a tensão de 13,8V comummente usada em rádios de amadores.
A fonte que usei já era bastante antiga (datada de 2002) e no rail de +12V, garante uma corrente de 10A.
Quando abri a fonte, tentei identificar qual o CI controlador do circuito e sendo ele o CI controlador é junto dele que terei de actuar para conseguir uma variação de tensão no "exterior"...
Neste caso o CI era um TL494 (ver AQUI o datasheet).
Enquanto de googla para encontrar o datasheet, uma passagem pelo separador de imagens, traz sempre alguns circuitos exemplo que dão importantes ajudas sobre a implementação e, neste caso, o hack do mesmo.
Em baixo está um desses esquemas e a vermelho está o que realmente importa.
O TL494 possui um pino de referencia interna de 5V (13), que passa por um divisor de tensão, ao qual liga o pino 2, que olhando o datasheet trata-se de uma entrada do amplificador de erro.
O pino 1 é a outra entrada, mas que faz também um divisor de tensão mas usando uma tensão de 5V na saída. Conclusão, o TL494, entre outras coisas, vai fazer oscilar o transformador de forma igualar as tensões no pino 1 e no pino 2.
Parecia fácil de mais para resultar. A primeira ideia foi cortar a trilha do pino 1, pegar num potenciómetro e usa-lo como divisor de tensão entre um dos rails (no meu caso o rail de +5V) e GND.
Independentemente do circuito que a minha fonte tivesse, estas alterações teriam de ser o suficiente para conseguir variar as tensões na saída da fonte. Simplesmente estava a "enganar" o amplificador de erro e fazer o circuito actuar como se os novos 13,8V correspondessem aos 12V...
A imagem em cima mostra o primeiro teste. Soldei 3 fios a um potenciómetro e soldei os mesmos na PCB.
Ao ligar a fonte, a ventoinha disparava por momentos, mas desligava de imediato.
Então rodei o potenciómetro todo para o mesmo lado e fui variando aos pontos enquanto ligava e desligava a fonte.
A certa altura, a ventoinha começou a rodar e o multímetro  que tinha a medir a tensão na saída de 12V, mostrou-me cerca de 9V. Sem desligar a fonte continuei a rodar e verifiquei que a tensão estava a variar também.
Tinha encontrado o "divisor de tensão" que me colocava no pino 1 uma tensão que já permitia a regulação e a medição de erro por parte do TL494.
Daí até ter 13,8V (aprox) foi um saltinho.
Estava encontrada a solução...
O resto foi testar a sua estabilidade ao funcionar desta forma e tratar de aperfeiçoar o resultado final, mas isso vou deixar para um outro artigo, a 2ª parte.

Em baixo deixo o código já organizado para fazer e chamar um caractere especial (como um smile).
Estes displays dispõem de uns endereços na sua memória para alojar caracteres especiais. O problema aqui é que esses endereços estão numa memória RAM e quando há uma falha de energia, têm de ser "feitos" novamente.
Os caracteres podem ser feitos com base numa matriz de 5x8 pontos (sendo que a ultima linha deve ser deixada em branco). No caso do código que aqui apresento essa matriz é definida como elementos do vector "caracter[]". A função "chamar_especial()" apenas acessa o endereço onde foi previamente escrito o caracter. Aqui de futuro, não agora, ainda devo fazer alterações de modo a que consiga mudar facilmente o endereço do novo caracter especial.

Rotina para fazer e chamar ao display o caracter especial:
void especial()
{
    char endereco;
    char caracter[8]={0b00000,      //Matriz 5x8
                                     0b01010,
                                     0b01010,
                                     0b00000,
                                     0b10001,
                                     0b01110,
                                     0b00000,
                                     0b00000};


    PORTB = 0b11000000;         //DDRAM
    __delay_us(50);
    PORTBbits.RB7=0;
    __delay_us(50);
    PORTB = 0b11000000;
    __delay_us(50);
    PORTBbits.RB7=0;
    __delay_us(50);

    for(endereco=0;endereco<8;endereco++)
    {
        PORTB = 0b10001000;
        __delay_us(50);
        PORTBbits.RB7=0;
        __delay_us(50);
        PORTB = ((endereco<<1) & 0b1110) + 0b10000000;
        __delay_us(50);
        PORTBbits.RB7=0;
        __delay_us(50);

        PORTB = ((caracter[endereco]>>3) & 0b10) + 0b11000000;
        __delay_us(50);
        PORTBbits.RB7=0;
        __delay_us(50);
        PORTB = ((caracter[endereco]<<1) & 0b11110) + 0b11000000;
        __delay_us(50);
        PORTBbits.RB7=0;
        __delay_us(50);
    }

    chamar_especial();
}

Rotina para chamar ao display o caracter especial do endereço em que foi gravado:
void chamar_especial()
{
    PORTB = 0b11000000;     //DDRAM do crac especial
    __delay_us(50);
    PORTBbits.RB7=0;
    __delay_us(50);
    PORTB = 0b11000000;
    __delay_us(50);
    PORTBbits.RB7=0;
    __delay_us(100);
}

Como disse no artigo anterior, a solução acabaria por fazer a mina própria biblioteca, assim este artigo é sobre o estado em que se encontra a mesma.
Consegui fazer com que os primeiros caracteres aparecessem no ecrã.
Daí dei um jeito no código "em bruto", para ficar mais flexível e fácil de usar no futuro.
Basicamente o que estou a fazer é a inicialização do LCD, a colocação do cursor num endereço e a escrita de caracteres com incremento automático do endereço do cursor.
Código para utilização do LCD com comunicação a 4 bits.

Rotina de configuração do LCD:
void config_lcd()
{
    // E   RS  RW  D7  D6  D5  D4
    // RB7 RB6 RB5 RB4 RB3 RB2 RB1

    char i;
    char config[7]={
                    0b10000100, //1ª config - 4bits
                    0b10000100, //4bits; 2linhas; 5x8pontos + E
                    0b10010000, //4bits; 2linhas; 5x8pontos + E
                    0b10000000, //E + display ON; mostra cursor; cursor pisca
                    0b10011110, //E + display ON; mostra cursor; cursor pisca
                    0b10000000, //E + cursor incrementa; sem display shift
                    0b10001100, //E + cursor incrementa; sem display shift
                  };

    for(i=0;i<7;i++)
    {
        PORTB = config[i];
        __delay_us(50);
        PORTBbits.RB7=0;
        __delay_us(50);
    }  
}

Rotina de posição do cursor:
void cursor_lcd_pos(char posicao)
{
    /*
     * 00h -> linha 1
     * 40h -> linha 2
     */

    PORTB = ((posicao>>3) & 0b1110) + 0b10010000;
    __delay_us(50);
    PORTBbits.RB7=0;
    __delay_us(50);
    PORTB = ((posicao<<1) & 0b11110) + 0b10000000;
    __delay_us(50);
    PORTBbits.RB7=0;
}

Rotina de escrita no display:
void escrever_lcd(char texto[])
{
    char length, i;

    length=strlen(texto);

    for(i=0;i<length;i++)
    {
        PORTB = ((texto[i]>>3) & 0b11110) + 0b11000000;
        __delay_us(50);
        PORTBbits.RB7=0;
        __delay_us(50);
        PORTB = ((texto[i]<<1) & 0b11110) + 0b11000000;
        __delay_us(50);
        PORTBbits.RB7=0;
        __delay_us(50);
    }
}

Exemplo de código main();
void main()
{
    PIC_init();

    config_lcd();
    cursor_lcd_pos(3);
    escrever_lcd("Ola mundo ");

}

Confirma-se... após uma discução no fórum da microchip, que a melhor opção é fazer a minha própria biblioteca ou funções para comunicar com o módulo LCD.
Este compilador C pode não trazer uma grande quantidade de bibliotecas funcionais (pois leva-me a crer que muitas foram copiadas do hi-tech), mas os Application Notes da microchip são fantásticos.
No entanto, continuei a ter algumas dificuldades em comunicar com o display e só após algumas horas de leitura do datasheet da Hitachi é que comecei a entender o conceito aqui usado.
É realmente muito trabalhoso e demorado comunicar com um LCD sem recorrer a bibliotecas já feitas, mas o desafio era esse mesmo. De realçar que existe o modo de comunicação por 8 bits + E + RS + RW, mas obviamente optei pelo método de 4bits + E + RS + RW, pois desta forma ocupo apenas 7 pinos para ligar ao módulo.
O bom é que com a minha biblioteca "vai fazer" coisas que normalmente não se fazem (pelo menos as que conhecia do CCS)...
O facto de estar a fazer todo o código de raiz faz com que o meu conhecimento acerca do mesmo seja bem maior, assim como um conhecimento mais detalhado dos LCD. Isto vai permitir-me fazer caracteres especiais, símbolos, marcas, etc...
Em futuros projectos, o uso destes LCD's que embora baratos, poderá levar um toque mais personalizado à sua aplicação.
Primeiros caracteres no display começaram a surgir. Nos próximos dias irei postar mais evoluções, até completar uma biblioteca "minima" que me permita iniciar o display, fazer todo o processo de escrita "automaticamente" e fazer a alteração do endereço do cursor .

Até agora, desde que passei a usar o MPLAB XC8, que tenho feito sempre as minhas bibliotecas de raiz (excepto claro as dos MCU) ou  pelo menos todas as funções de raiz.
Este fim de semana apetece-me ligar um PIC16F88 a um LCD 16x2, mas sinceramente não queria escrever tudo de novo, pois o XC8 possui a biblioteca "xlcd.h" para estes casos.
Vamos ver o que consigo fazer ou se vou acabar por fazer todo o código como de costume.
Começa mais uma noite de "auto aprendizagem" :D.

Link para o artigo de Agosto, altura em que comprei 2 LCD:

Embora não tenha muito tempo ultimamente, hoje cheguei a casa e ainda estive a fazer esta pequena montagem.
Trata-se de um pré-amplificador de microfone irá integrar um dos vários pequenos projectos que estão para se realizar.
Tem somente a finalidade de dar ganho a um micro e seguido deste circuito poderia simplesmente colocar-se um LM386 com um altifalante e teríamos uma espécie de "megafone".
Pode ter muitas outras utilidades, como entrada num vuímetro, sensor desliga/liga lâmpada com o bater de palmas, etc... no fundo e como é de esperar, tudo o que de relacionado há com  aquisição de som.

Tenho andado a estudar um pouco, um pequeno MCU.
Trata-se do PIC12F1822.... é um monstrinho em 8 pinos.
Além do "comum", este micro tem USART, oscilador interno de 32MHz, DAC, PWM, etc...
Estava a ler e a implementar em simulação uma pequena experiência com uma ADC (10 bits) e quando estava a fazer a configuração, verifiquei que a DAC poderia servir de referência para a ADC.
Mas... espera lá!
A DAC a servir de referência para a ADC?
5/32=156mV
Ou seja, cada salto da DAC é de 156mV.
Se usar isso como referência para a ADC de 10bits, então:
156mV/1024=153uV
Com rigor ou não.... poderei ter leituras na ADC na ordem dos 153uV!
E é assim que se usa uma ADC para ler ruído eheheh.
Fazendo mais uns calculos,
32*1024=32 768
Resumindo, ganha-se uma ADC de 32 768bits a partir de uma ADC de 10bits e uma DAC de 5bits.
Alterando ainda a referencia da DAC para uma interna de 1.024V,
1.024V/32=32mV
Ou seja, cada salto fica com 32mV e sendo dado como referência ao ADC, então,
0.032/1024=0.00003125=31.25uV
Ahahahahah... na teoria não seria sequer necessários ampops... isto conseguiria medir valores de tensão tão baixos!

O blogue tem andado um pouco mais "morto" pois isto anda fraco de engenhocas...
O trabalho, as frequências, os projectos, etc... tiram bastante tempo e ultimamente não tenho encontrado muito material para fazer mais engenhocas.

Pois bem, fica aqui o desafio, que toda a gente pode responder em comentário, para uma engenhoca.
Se alguém tiver alguma ideia para eu fazer, algum projecto que queira partilhar, etc..., basta entrar em contacto comigo via comentário ou directamente via e-mail para cr7aek@gmail.com .


Ora aqui uma noticia bem interessante. Um gerador de energia eléctrica, aproveitando o vento, mas sem partes móveis, ou seja, sem pás.
Ao que parece, numa universidade da Holanda, conseguiram dar um importante passo nesse sentido.
A wind-driven electricity generator without moving mechanical parts is adorning the lawn of Delft University of Technology, The Netherlands. The Electrostatic Wind-Energy Converter (EWICON) could unobtrusively function in an urban landscape.
Wind turbines supply a significant part of the renewable energy mix. But wind farms meet a lot of resistance from local populations because of noise pollution, flickering shadows and birds getting killed. The EWICON, which looks like wire mesh artistically framed in a giant 0, eliminates these negative aspects. Also, the absence of moving parts reduces maintenance costs significantly.
Prof. dr. Johan J. Smit High head of the Voltage Technology & Management Institute of Delft University explains how the EWICON works. ‘Using high voltage, electrically charged droplets of water are produced in the horizontal elements. At the same time these horizontal elements, which are electrodes, generate an electric field. As the wind forces the electrically charged droplets against this electric field towards the earth, the converter is charged to DC voltages of between 80 and 100 kilovolts. After conversion to AC, this can then be used to supply power to the electricity grid.
The bladeless electricity generator installed on the University’s campus is a working prototype. The output power is dependent on a variety of factors like the method used to generate the aerosol of charged droplets, the size of the droplets, the flow rate of the liquid, electrode configuration, humidity of the environment and wind speed. Funding is needed to continue the development and the upscaling of the EWICON.
Its unobtrusive nature makes the power plant suitable for installation in urban areas. At the same time, its low maintenance requirements makes the EWICON an interesting candidate for off-shore wind farms.
For deeper understanding of the complexity of the system read the 2011 master thesis of Arjan Winters.
EWICON was developed in a collaborative effort of Delft University, Wageningen University and four commercial businesses. Physicist Piet Sonneveld of Wageningen University devised the bladeless wind energy converter and delivered proof of concept in 2002. The prototype was designed by engineer Francine Houben of architecture firm Mecanoo.

Link para 2011 master thesis of Arjan Winters: http://repository.tudelft.nl/view/ir/uuid:81221f03-9d46-4c7c-a5b0-b859a26f7d04/

Fonte: http://www.techthefuture.com/energy/dutch-techies-build-bladeless-wind-power-plant/#.UWfGaWLvwng.twitter

Quem já ligou uma coisa DESTAS, sabe que por vezes o windows confunde com o Serial Ball Point Mouse.
Tenho andado a tentar ligar o Datalogger ao MATLAB, mas cada vez que começo a receber dados, o windows reconhece o conversor como um rato. Tal e qual a imagem em cima.
Já tentei várias formas, incluindo o "SerialBallPointMouseDisabler", mas ele nunca funciona por muito tempo e passado um pouco (ou desligar e voltar a ligar o conversor), o windows volta a activar o "rato".
Pelo que tenho lido, isto também acontece muito com GPS.
Se alguém souber como desactivar de uma vez o Serial Ball Point Mouse, comente aqui.
Agora para conseguir, tenho de ligar o conversor ao datalogger, ir aos dispositivos, desinstalar o rato, tirar o conversor do circuito, correr o "SerialBallPointMouseDisabler", voltar a ligar o conversor ao circuito e funciona certo.
Em baixo, primeiras experiências a receber dados pelo MATLAB, usando uma porta serial.

Brilhante trabalho recorrendo a uma célula de Peltier, semelhante à que já tinha AQUI mostrado.
Não tem nenhuma "arte mágica", nem difere do que tinha já mostrado, mas de frisar aqui a beleza da construção.
Podem ver mais pormenores na página do Instructables:

Noticia de dia 1 de Abril, publicada no Expresso, que tem um ligeiro atraso. 
Desde o dia 27 de março que Portugal é abastecido por eletricidade produzida quase exclusivamente por fontes renováveisDados divulgados pela REN - Redes Energéticas de Portugal mostram que as eólicas e as barragens estão a beneficiar do mau tempo que tem assolado o país e que está a dispensar por completo as centrais térmicas a gás natural.No dia 1 de abril, por exemplo, dos 124,7 gigawatts hora (GWh) consumidos, apenas 3,8 GWh tiveram origem nas centrais térmicas a carvão. Só as eólicas injetaram no sistema elétrico nacional 65,8 GWh durante o primeiro dia de abril. Já por ocasião do temporal registado na noite de 18 para 19 de janeiro deste ano tinha havido uma produção considerada "excecional" de eletricidade como origem em fontes renováveis (55% do consumo ocorrido nessa data), por alguns especialistas em energia. O que não é normal, segundo as mesmas fontes, é estarmos já no sexto dia consecutivo (27 de março a 1 de abril) com o sistema eletroprodutor quase 100% assente em fontes de energia renováveis, com destaque para as eólicas e para as barragens.Outra nota de destaque vai para o facto de em todos esses dias Portugal ter produzido mais do que necessitava para consumo interno, o que acabou por resultar num incremento das exportações de eletricidade.
Ler mais: http://expresso.sapo.pt/energias-renovaveis-abastecem-o-pais-ha-seis-dias=f797631#ixzz2PU0trc5Y

Ao ler o artigo escrito no "Engenharia é:" sobre 7 limites e curiosidades do nosso corpo, encontrei esta pergunta e resposta que obviamente não podia deixar de colocar por aqui.
Visitem o link no final do artigo pois tem curiosidades bastante interessantes.
5. Qual é o maior choque eléctrico uma pessoa pode suportar?

É muito difícil dizer com precisão qual é a tensão que pode matar uma pessoa adulta, os efeitos do choque dependem muito mais da corrente e a corrente não depende apenas da tensão, mas também da resistência apresentada pela pessoa no momento do choque.
Essa resistência pode variar entre centenas de milhares de OHM( é a unidade de medida da resistência elétrica) nos pontos em que a pele é mais grossa e seca, até algumas centenas de OHMS nos locais em que a pele seja fina ou esteja ferida e molhada.
Importante na análise das condições em que uma pessoa pode levar choques é o fato da corrente poder circular somente se houver um percurso para isso, o que quer dizer que uma pessoa só pode levar um choque se a corrente puder circular entre dois pontos de seu corpo.
No choque clássico (aquele em torno de 220v), o coração é colocado fora do seu ritmo de batida, processo chamado de fibrilação ventricular.
O limiar da sensação de seres humanos é um milliamp (1mA), enquanto uma corrente de 200mA é fatal – capaz de parar um coração humano de aproximadamente 300g.

Aqui está um pequeno circuito, usando um NE555 com um potenciómetro, para variar a frequência da saída.
O circuito foi montado em menos de 1h, aproveitando componentes de projectos antigos, como mostra a primeira foto.
Este é daqueles circuitos que vale a pena ter sempre por aqui. Sinceramente raramente se usa (pelo menos com a frequência escolhida), mas lá vem a altura em que é preciso :D.