Google+ Followers

domingo, 12 de maio de 2013

Sliders em java.


Opa esta noite vou mostrar uma aplicação em Java, usando Applet e alguns Sliders para desenhar figuras geométricas. Este código e só colar em um packge como o nome gráfica e rodar!
Abaixo a imagem do programa rodando.
Olha o código ai gente!!!

package grafica;

import javax.swing.JPanel;
import javax.swing.JApplet;
import javax.swing.JSlider;
import java.awt.BasicStroke;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.Rectangle;
import java.awt.Color;
import java.awt.geom.GeneralPath;
import javax.swing.JLabel;
import java.awt.Font;
import java.awt.Dimension;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JCheckBox;

@SuppressWarnings("serial")
public class Sliders extends JApplet {
private int lados =19;
private int raio = 100;
private int espessura = 1;
private int cx = 350;
private int cy = 200;
private int red = 100;
private int green = 100;
private int blue = 100;
private JPanel jContentPane = null;
private JSlider jSliderLados = null;
private JSlider jSliderEspessurra = null;
private JPanel jPanelLados = null;
private JPanel jPanelEspessura = null;
private JLabel jLabel = null;
private JLabel jLabel1 = null;
private JSlider jSliderCorRED = null;
private JSlider jSliderCorGREEN = null;
private JSlider jSliderCorBLUE = null;
private JLabel jLabelCorRED = null;
private JLabel jLabelCorGREEN = null;
private JLabel jLabelCorBLUE = null;
private JButton jButtonRandom = null;
private JCheckBox jCheckBoxDesenhaPontos = null;
public Sliders() {
super();
}

public void init() {
this.setSize(710, 600);
this.setContentPane(getJContentPane());
}

private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.setBackground(Color.white);
jContentPane.setSize(new Dimension(713, 613));
jContentPane.add(getJPanelLados(), null);
jContentPane.add(getJPanelEspessura(), null);
}
return jContentPane;
}

private JSlider getJSliderLados() {
if (jSliderLados == null) {
jSliderLados = new JSlider(3,38,19);
jSliderLados.setMajorTickSpacing(5);
jSliderLados.setMinorTickSpacing(1);
jSliderLados.setPaintTicks(true);
jSliderLados.setBackground(Color.white);
jSliderLados.setBounds(new Rectangle(183, 6, 353, 49));
jSliderLados.setPaintLabels(true);

jSliderLados.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent e) {
lados = jSliderLados.getValue();
repaint();
}
});
}
return jSliderLados;
}

private JSlider getJSliderEspessurra() {
if (jSliderEspessurra == null) {
jSliderEspessurra = new JSlider(1,36,1);
jSliderEspessurra.setMajorTickSpacing(5);
jSliderEspessurra.setMinorTickSpacing(1);
jSliderEspessurra.setPaintTicks(true);
jSliderEspessurra.setBackground(Color.white);
jSliderEspessurra.setBounds(new Rectangle(150, 10, 339, 46));
jSliderEspessurra.setPaintLabels(true);
jSliderEspessurra.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent e) {
espessura = jSliderEspessurra.getValue();
repaint();
}
});
}
return jSliderEspessurra;
}
public void paint (Graphics g){
g.setColor(new Color(this.red,this.green,this.blue));
Graphics2D g2 = (Graphics2D) g;
g.clearRect(0,50,500,275);
jSliderLados.repaint();
jSliderEspessurra.repaint();
jSliderCorBLUE.repaint();
jSliderCorGREEN.repaint();
jSliderCorRED.repaint();
Polygono polygon = new Polygono(this.cx,this.cy,this.raio,this.lados);
      
        GeneralPath poligono = new GeneralPath(polygon);          
        BasicStroke stroke = new BasicStroke(espessura);          
        g2.setStroke(stroke);          
        g2.draw(poligono);
        
        if (jCheckBoxDesenhaPontos.isSelected() == true){
        for (int i = 0; i < this.lados; i++) {
        g2.setColor(Color.red);
        g2.fillOval(polygon.xpoints[i]-1,polygon.ypoints[i]-1,3,3);
        }
        }
}

private JPanel getJPanelLados() {
if (jPanelLados == null) {
jLabel = new JLabel();
jLabel.setBounds(new Rectangle(105, 10, 62, 34));
jLabel.setFont(new Font("Dialog", Font.BOLD, 18));
jLabel.setText("Lados:");
jPanelLados = new JPanel();
jPanelLados.setLayout(null);
jPanelLados.setBounds(new Rectangle(1, 0, 710, 62));
jPanelLados.setBackground(Color.white);
jPanelLados.add(getJSliderLados(), null);
jPanelLados.add(jLabel, null);
}
return jPanelLados;
}

private JPanel getJPanelEspessura() {
if (jPanelEspessura == null) {
jLabelCorBLUE = new JLabel();
jLabelCorBLUE.setBounds(new Rectangle(34, 164, 99, 24));
jLabelCorBLUE.setText("BLUE:");
jLabelCorBLUE.setForeground(Color.blue);
jLabelCorBLUE.setFont(new Font("Dialog", Font.BOLD, 18));
jLabelCorGREEN = new JLabel();
jLabelCorGREEN.setBounds(new Rectangle(34, 119, 99, 24));
jLabelCorGREEN.setText("GREEN:");
jLabelCorGREEN.setForeground(Color.green);
jLabelCorGREEN.setFont(new Font("Dialog", Font.BOLD, 18));
jLabelCorRED = new JLabel();
jLabelCorRED.setBounds(new Rectangle(34, 70, 99, 24));
jLabelCorRED.setText("RED:");
jLabelCorRED.setBackground(Color.red);
jLabelCorRED.setDisplayedMnemonic(KeyEvent.VK_UNDEFINED);
jLabelCorRED.setForeground(Color.red);
jLabelCorRED.setFont(new Font("Dialog", Font.BOLD, 18));
jLabel1 = new JLabel();
jLabel1.setBounds(new Rectangle(34, 22, 105, 24));
jLabel1.setText("Espessura:");
jLabel1.setFont(new Font("Dialog", Font.BOLD, 18));
jPanelEspessura = new JPanel();
jPanelEspessura.setLayout(null);
jPanelEspessura.setBounds(new Rectangle(0, 314, 712, 298));
jPanelEspessura.setBackground(Color.white);
jPanelEspessura.add(getJSliderEspessurra(), null);
jPanelEspessura.add(jLabel1, null);
jPanelEspessura.add(getJSliderCorRED(), null);
jPanelEspessura.add(getJSliderCorGREEN(), null);
jPanelEspessura.add(getJSliderCorBLUE(), null);
jPanelEspessura.add(jLabelCorRED, null);
jPanelEspessura.add(jLabelCorGREEN, null);
jPanelEspessura.add(jLabelCorBLUE, null);
jPanelEspessura.add(getJButtonRandom(), null);
jPanelEspessura.add(getJCheckBoxDesenhaPontos(), null);
}
return jPanelEspessura;
}

private JSlider getJSliderCorRED() {
if (jSliderCorRED == null) {
jSliderCorRED = new JSlider(0, 255, 100);
jSliderCorRED.setBounds(new Rectangle(150, 68, 509, 43));
jSliderCorRED.setMajorTickSpacing(15);
jSliderCorRED.setMinorTickSpacing(1);
jSliderCorRED.setPaintLabels(true);
jSliderCorRED.setPaintTicks(true);
jSliderCorRED.setForeground(Color.black);
jSliderCorRED.setBackground(Color.red);
jSliderCorRED.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent e) {
red = jSliderCorRED.getValue();
repaint();
}
});
}
return jSliderCorRED;
}

public void setJSliderCor(){
jSliderCorRED.setValue(red);
jSliderCorGREEN.setValue(green);
jSliderCorBLUE.setValue(blue);
}


private JSlider getJSliderCorGREEN() {
if (jSliderCorGREEN == null) {
jSliderCorGREEN = new JSlider(0, 255, 100);
jSliderCorGREEN.setBounds(new Rectangle(150, 119, 508, 43));
jSliderCorGREEN.setMajorTickSpacing(15);
jSliderCorGREEN.setMinorTickSpacing(1);
jSliderCorGREEN.setPaintLabels(true);
jSliderCorGREEN.setPaintTicks(true);
jSliderCorGREEN.setForeground(Color.black);
jSliderCorGREEN.setBackground(Color.green);
jSliderCorGREEN.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent e) {
green = jSliderCorGREEN.getValue();
repaint();
}
});
}
return jSliderCorGREEN;
}

private JSlider getJSliderCorBLUE() {
if (jSliderCorBLUE == null) {
jSliderCorBLUE = new JSlider(0, 255, 100);
jSliderCorBLUE.setBounds(new Rectangle(150, 171, 510, 43));
jSliderCorBLUE.setMajorTickSpacing(15);
jSliderCorBLUE.setMinorTickSpacing(1);
jSliderCorBLUE.setPaintLabels(true);
jSliderCorBLUE.setPaintTicks(true);
jSliderCorBLUE.setForeground(Color.black);
jSliderCorBLUE.setBackground(Color.blue);
jSliderCorBLUE.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent e) {
blue = jSliderCorBLUE.getValue();
repaint();
}
});
}
return jSliderCorBLUE;
}

private JButton getJButtonRandom() {
if (jButtonRandom == null) {
jButtonRandom = new JButton();
jButtonRandom.setBounds(new Rectangle(287, 241, 134, 28));
jButtonRandom.setText("RANDOM");
jButtonRandom.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
red = (int) (Math.random()*255);
green = (int) (Math.random()*255);
blue = (int) (Math.random()*255);
setJSliderCor();
repaint();
}
});
}
return jButtonRandom;
}

private JCheckBox getJCheckBoxDesenhaPontos() {
if (jCheckBoxDesenhaPontos == null) {
jCheckBoxDesenhaPontos = new JCheckBox();
jCheckBoxDesenhaPontos.setBounds(new Rectangle(493, 238, 124, 21));
jCheckBoxDesenhaPontos.setText("Desenhar pontos");
jCheckBoxDesenhaPontos.setBackground(Color.white);
jCheckBoxDesenhaPontos.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent e) {
repaint();
}
});
}
return jCheckBoxDesenhaPontos;
}
class Polygono extends Polygon {
public Polygono(int cx, int cy, int raio, int lados){    
       for(int i=0 ;i<lados;i++){
int x =    (int) Math.round((cx + (raio) * Math.cos(i*2*Math.PI/lados)));
int y =  (int) Math.round((cy + (raio) * Math.sin(i*2* Math.PI/lados)));
this.addPoint(x, y);
}  
}
}
}


sábado, 4 de maio de 2013

Manutenção e Reparo em Circuitos SMD

Os componentes SMD ("superficial monting device") ou componentes de montagem em superfície têm dominado os equipamentos eletrônicos nos últimos anos. Isto devido ao seu tamanho reduzido comparado aos componentes convencionais. Veja abaixo a comparação entre os dois tipos de componentes usados na mesma função em dois aparelhos diferentes:
Nesta parte do site falaremos sobre os tipos e características dos componentes SMD assim
como as formas de trabalhar com CIs deste tipo. É só acompanhar os menus abaixo:
TIPOS DE COMPONENTES SMD
A maioria dos componentes SMD é feita de silício (transistores, diodos, CIs) e soldada no lado
das trilhas, ocupando muito menos espaço numa placa de circuito impresso. Graças a estes
componentes foi possível a invenção to telefone celular, notebooks, computadores de mão, etc.
Veja abaixo o exemplo de alguns tipos de componentes SMD:
Resistores, capacitores e jumpers SMD
Os resistores têm 1/3 do tamanho dos resistores convencionais. São soldados do lado de baixo
da placa pelo lado das trilhas, ocupando muito menos espaço. Têm o valor marcado no corpo
através de 3 números, sendo o 3° algarismo o número de zeros. Ex: 102 significa 1.000 = 1
K. Os jumpers (fios) vem com a indicação 000 no corpo e os capacitores não vem com valores
indicados. Só podemos saber através de um capacímetro. Veja abaixo:

Eletrolíticos e bobinas SMD
As bobinas tem um encapsulamento de epóxi semelhante a dos transistores e diodos. Existem
dois tipos de eletrolíticos: Aqueles que têm o corpo metálico (semelhante aos comuns) e os
com o corpo em epóxi, parecido com os diodos. Alguns têm as características indicadas por
uma letra (tensão de trabalho) e um número (valor em pF). Ex: A225 = 2.200.000 pF = 2,2 μF x
10 V (letra "A"). Veja abaixo:
Semicondutores SMD
Os semicondutores compreendem os transistores, diodos e CIs colocados e soldados ao lado
das trilhas. Os transistores podem vir com 3 ou 4 terminais, porém a posição destes terminais
varia de acordo com o código. Tal código vem marcado no corpo por uma letra, número ou
sequência deles, porém que não corresponde à indicação do mesmo. Por ex. o transistor
BC808 vem com indicação 5BS no corpo. Nos diodos a cor do catodo indica o seu código,
sendo que alguns deles têm o encapsulamento de 3 terminais igual a um transistor. Os CIs têm
2 ou 4 fileiras de terminais. Quando tem 2 fileiras, a contagem começa pelo pino marcado por
uma pinta ou à direita de uma "meia lua". Quando têm 4 fileiras, o 1° pino fica abaixo à
esquerda do código. Os demais pinos são contados em sentido anti-horário. Veja abaixo
alguns exemplos de semicondutores SMD:

Dessoldagem de SMD com soprador de ar quente
Esta é uma excelente ferramenta para se retirar SMD de placas de circuito impresso, porém
tem duas desvantagens: o preço, um bom soprador de ar quente custa relativamente caro
(pode chegar perto dos R$ 1.000), mas se o técnico trabalha muito com componentes SMD
vale a pena o investimento (se bem que há sopradores manuais, parecidos com secador de
cabelos, que custam na faixa de R$ 250), e a necessidade de ter habilidade para trabalhar com
tal ferramenta, mas nada que um treinamento não resolva. Aqui mostraremos como se retira
um SMD com esta ferramenta. Veja abaixo o exemplo de um soprador de ar quente:
Dessoldagem de SMD com soprador de ar quente - continuação
Ligue o soprador e coloque uma quantidade de ar e uma temperatura adequadas ao CI e ao
circuito impresso onde for feita a operação. As placas de fenolite são mais sensíveis ao calor
do que as de fibras de vidro. Portanto para as de fenolite o cuidado deve ser redobrado
(menores temperaturas e dessoldagem o mais rápido possível) para não danificar a placa. A
seguir sopre o ar em volta do CI até ele soltar da placa por completo. Daí é só fazer a limpeza
com uma escova e álcool isopropílico conforme descrito na página da dessoldagem som solda.
observe o procedimento abaixo:
Soldagem de CI SMD
Em primeiro lugar observamos se o CI a ser colocado está com os terminais perfeitamente
alinhados. Um pino meio torto dificultará muito a operação. Use uma lente de aumento para
auxiliá-lo nesta tarefa. Observe abaixo:



Soldagem de SMD - Passo 1
Coloque o CI na placa tomando o cuidado de posicioná-lo para cada pino ficar exatamente
sobre a sua trilha correspondente. Se necessário use uma lente de aumento. A seguir
mantenha um dedo sobre o CI e aplique solda nos dois primeiros pinos de dois lados opostos
para que ele não saia da posição durante a soldagem. Observe abaixo:
Soldagem de SMD - Passo 2
Coloque um pouco de fluxo de solda nos pinos do CI. Derreta solda comum num dos cantos do
CI até formar uma bolinha de solda. A soldagem deverá ser feita numa fileira do CI por vez.
Veja:





Soldagem de SMD - Passo 3
Coloque a placa em pé e cuidadosamente corra a ponta do ferro pelos pinos de cima para
baixo, arrastando a solda para baixo. Coloque mais fluxo se necessário. Quando a solda
chegar em baixo, coloque novamente a placa na horizontal, aplique um pouco mais de fluxo e
vá puxando a solda para fora dos pinos. Se estiver muito difícil, retire o excesso de solda com
um sugador de solda. Repita esta operação em cada fileira de pinos do CI. Veja abaixo:





Soldagem de SMD - Passo 4
Concluída a soldagem, verifique de preferência com uma lente de aumento se não ficaram dois
ou mais pinos em curto. Se isto ocorreu aplique mais fluxo e retire o excesso de solda. Para
finalizar, limpe a placa em volta do CI com álcool isopropílico. Veja abaixo como ficou o CI após
o processo:


Amplificador de média potência


Amplificador de média potência

Mais um pequeno amplificador para vocês montarem espera que gostem.
Este amplificador de excelente qualidade pode ser usado como reforço de som para rádios e gravadores, com uma potência de saída de alguns watts. Q4, Q5 devem ser montados em dissipadores de calor. P2 deve ser ajustado para se obter uma corrente de repouso na fonte da ordem de 50mA.

Lista de material:

P1 47k potenciômetro;
C1 100uf 16 v capacitor eletrolítico;
C2 10nf capacitor cerâmico;
P2 47k potenciômetro;
R1 10k;
 R2, R3 22k;
R4, R5 470R;
R6, R7 2R2;
C3 1000uf 16 v capacitor eletrolítico;
Q1, Q2 BC546;
Q3 BC558;
Q4 BD136;
Q5 BD135.


quarta-feira, 1 de maio de 2013

Animação em átomos!!!


Ola pessoal mais uma vez tenha uma noticia muito boa a IBM acaba de criar uma animação em escala dos átomos imagine isso!
Olha i link para o vídeo
http://www.youtube.com/watch?v=oSCX78-8-q0&feature=player_embedded