sábado, 1 de junio de 2013

Protoboard

Un protoboard es un dispositivo en el cual se puede colocar los componentes electrónicos, es un dispositivo muy útil para hacer pruevas o realizar proyectos electrónicos sin la necesidad de realizarlos en placa(se explicara mas adelante que es una placa y como realizarlas)


la constitución interna de un protoboard es lo que nos interesa pues esta es la que nos permite trabajar en el, la parte central esta puesta en filas y separada por la mitad como se puede apreciar en la imagen, y la linea de los extremos es una columna que esta a lo largo hasta el final, por los agujeros es donde se conecta el cableado o los pines de los componentes.


otra imagen que nos muestra como esta formado es la que se encuentra abajo






Fuentes de voltaje Corriente Directa(DC)

Una fuente de poder o fuente de voltaje es un dispositivo que te provee voltaje es decir que se enchufa al toma corrientes y esto te suministra voltaje en corriente directa para poder alimentar tu circuito con el voltaje que suministre la fuente o el que se requiera para hacer funcionar el circuito(existen componentes que funcionan con 5V, y fuentes que generan 12 ó 24V, este voltaje quemara los componentes)
 Simbologia de fuetes de voltaje


Ahora bien un circuito puede estar alimentado por mas de una fuente, es decir que se necesitan mas de un tipo de voltaje para hacer funcionar todo el circuito, esto puede ser descrito en dos formas, se necesita mas voltaje para un determinado circuito o se necesita mas corriente para este circuito, estos son 2 hechos muy diferentes, la corrientes es "I", y se obtiene conectando mas fuentes de voltaje en paralelo, pero para que esto ocurra los voltajes deben ser iguales, de lo contrario el voltaje se igualara al voltaje menor.

Circuito con Fuentes de Voltaje en Paralelo

La conexión de una fuente en serie es la segunda forma de conectas otra fuente, de esta forma el voltaje aumenta pero la corriente se mantiene constante
Circuito con fuentes de Voltaje en Serie





Fuente de Voltaje Real
 

jueves, 30 de mayo de 2013

Nociones basicas de electronica

Bueno en si la electronica es la ciencia que estudia y emplea sistemas cuyo funcionamiento se basa en la conducción y el control del flujo microscópico de los electrones u otras partículas cargadas eléctricamente.

En otras palabras estudia el paso de la corriente electrica o electricidad atraves de diferentes componentes.

La electronica se divide en dos ramas, una es la electronica analoga y la otra es electronica digital.

la electronica analoga estudia las fluctuaciones del voltaje y la manipulacion de estas fluctuaciones es decir el cambio de los distintos voltajes, son estos cambios los que atraves de dispositivos semiconductores los que se puede crear sonido por los distintos niveles de voltaje, y tambien el mandar radiofrecuencias atraves de la admosfera ; la electronica analoga ve los cambios de voltaje es decir que no es igual tener 4.5V a 5V este cambio aunque minimo puede afectar enormemente los circuitos


La electronica digital estudia las comunicaciones de forma digital, es decir que no toma los cambios minimos de voltaje, en electronica digital solo existe 2 estados "0" o "1" que son los estados de falso o verdadero respectivamente, hablando en voltaje depende del componente a utilizar, pues para algunos componentes 1.5V o mas voltaje a este(es decir 1.7V, 2.5V, 4.8V) puede ser un 1 logico, mientras que un voltaje inferior a este es tomado como 0 logico.

En los futuros post estaremos tratando netamente el tema de electronica digital.

jueves, 4 de octubre de 2012

Listas enlasadas

Buenas como estan soy narurasengan y hoy les traigo listas enlasadas, para explicarlo de forma general imaginemos un archivero, o una caja con documentos, en este archivero tenemos lo que son folders de informacion en donde se guardan los trabajos o documentos que queremos almacenar tales como tareas de matematicas o fisica etc. cada folder existen documentos que contienen informacion o imagenes de lo que decidimos guardar. y todos estos datos nos dicen algo respecto a un unico sujeto es decir que es el forder de un unico cliente.

 En forma teorica en si que es una lista enlasada pues es un conjunto de objetos que se relacionan en forma de lista, dichos objetos pueden ser de cualquier tipo, en este caso se usan nodos pues los nodos son los que contienen informacion imagenes numeros lo que se quiera guardar en ellos.

El archivero seria nuestra lista, pues en ella se almacenara todos los folders de informacion es decir los nodos con la informacion que necesitamos almacenar y los documentos que se almacenan en el folder son los atrubutos que deceamos guardar es decir la informacion que nos piden que guardemos como nombre de usuario, edad, fotografias, etc.
 
Para crear una lista enlasada se necesitan dos cosas, una clase nodo y otra una clase lista, y otra clase es la que ingresa y modifica la informacion de esta empecemos con la clase Nodo

package listasenlasadas;


/**
 * @author jaac747
 */

public class Nodo {

    /*
     *Creo una variable nodo la cual va a contener una referencia o un apuntador
     * es decir con siguiente paso al siguiente nodo de la lista este es el que
     * enlasa los datos de la lista
     */

    private Nodo siguiente;

    /*
     * estas bariables son las de un usuario podemos colocar mas variables o menos
     * es decir que el nodo contendra esta informacion del usuario en un unico nodo
     * 
     */

    private String nombre;
    private String apellido;
    private int telefono;
    
    /*
     * metodo constructor vacio
     */

    public Nodo(){
    
    }

    /*
     * metodo constructor que recibe la informacion del usuario
     */

    public Nodo(String nombre,String apellido,int telefono){
        this.nombre=nombre;
        this.apellido=apellido;
        this.telefono=telefono;
    }

    /**
     * @return the siguiente
     */
    public Nodo getSiguiente() {
        return siguiente;
    }

    /**
     * @param siguiente the siguiente to set
     */
    public void setSiguiente(Nodo siguiente) {
        this.siguiente = siguiente;
    }

    /**
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * @param nombre the nombre to set
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * @return the apellido
     */
    public String getApellido() {
        return apellido;
    }

    /**
     * @param apellido the apellido to set
     */
    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    /**
     * @return the telefono
     */
    public int getTelefono() {
        return telefono;
    }

    /**
     * @param telefono the telefono to set
     */
    public void setTelefono(int telefono) {
        this.telefono = telefono;
    }
}
Luego de esto tenemos la clase lista que contiene la lista de objetos o de nodos
package listasenlasadas;

/**
 *
 * @author jaac747
 */
public class Lista {
    /*
     * nodo raiz es una referencia a el principio de la lista de los nodos
     */

    private Nodo raiz;
    /*
     * el metodo insertar como su nombre lo indica sirve para insertar en la lista de nodos
     * a un nodo nuevo
     */
    public void insertar(String nombre, String apellido, int telefono) {
        //se crea un nuevo nodo con la informacion
        Nodo nuevo = new Nodo(nombre, apellido, telefono);
        System.out.println(nombre+" "+apellido+" "+telefono);
        //se verifica si el principio de la lista esta vacia si si se el asigna 
        //el nuevo nodo al principio
        if (raiz == null) {
            raiz = nuevo;

        } else {
            //de lo contrario se recorre la lista de nodos asta encontrar el que este 
            //vacio y se inserta el nuevo nodo en esta
            Nodo puntero = raiz;
            while (puntero.getSiguiente() != null) {
                puntero = puntero.getSiguiente();
            }
            puntero.setSiguiente(nuevo);
        }
    }
    /*
     *el metodo modificar modifica un nodo se busca el nodo que se quiere 
     * modificar en este caso la busqueda es por nombre pero es mas recomendable
     * hacerlo por id o carnet o cedula algo que sea unico del usuario y del nodo 
     * para que aya repeticiones
     */
    public void modificar(String nombre, String apellido, int telefono) {
        Nodo puntero = raiz;
        //recorre la lista asta que encuentra el nombre y luego lo modifica
        while (puntero.getNombre().equals(nombre) == false) {
            puntero = puntero.getSiguiente();
        }
        puntero.setNombre(nombre);
        puntero.setApellido(apellido);
        puntero.setTelefono(telefono);
    }
    /*
     *este metodo elimina toda la lista de nodos
     */
    public void eliminar() {
        raiz = null;
    }
}

y por ultimo el metodo principal main que es el que agrega cambia y elimina todo
package listasenlasadas;

/**
 *
 * @author jaac747
 */
public class Listasenlasadas {

    public static void main(String[] args) {
        // TODO code application logic here
        Lista nueva=new Lista();
        nueva.insertar("josue", "hernandes", 58624315);
        nueva.insertar("erick", "cortez", 45862319);
        nueva.modificar("josue", "arenales", 58624315);
        nueva.eliminar();
    }
}
Bueno eso es todo por ahora me falto lo que es eliminar un solo nodo pero eso lo are otro dia no es muy dificil solo se modifica siguiente

miércoles, 19 de septiembre de 2012

agregar un arreglo de labels

Lastimosamente para netbeans no hay un metodo que solo indicar el tamaño del arreglo y ya esta, hay que hacerlo a mano, en este caso cree una clase jframe y a este le añadi un jpanel   y en este es el que le aplico el codigo.


package agregarlabels;

import java.awt.Color;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.border.Border;

/**
 *
 * @author jaac747
 */
public class pantalla extends javax.swing.JFrame {

    /**
     * Creates new form pantalla
     */
    public pantalla() {
        initComponents();
        inicio();
        this.setSize(400, 425);
    }
     
    private void inicio(){
        JLabel[] tablero;
        jPanel1.setSize(340, 340);
        int datox=15;//el total de piesas horizontalmente
        int datoy=datox;//para que sea una matriz cuadrada se iguala 
        int aux=datox*datoy;//el total de labels en la matriz
        tablero=new JLabel[aux];//se crea el arreglo de labels segun el tamaño total
        int espacio=5;//se crea un espacio que sera el que estara entre los datos
        //se obtiene el tamaño en x de los labels segun la cantidad de estos
        int tamanox=(jPanel1.getWidth()-(espacio*(datox+1)))/datox;
        System.out.println(tamanox);
        //se obtiene el tamaño en y de los labels segun la cantidad de estos
        int tamanoy=(jPanel1.getHeight()-(espacio*(datoy+1)))/datoy;
        System.out.println(tamanoy);
        
        int total=0;// se crea una bariable para recorrer el arreglo de labels
        int posiciony=0;//variable que sirve para ver la posicion en y de
for(int y=0;y<datoy;y++){
            //se le da una pocicion en y 
            posiciony=(y*(tamanoy+espacio)+espacio);
            for(int x=0;x<datox;x++){
                //System.out.println(total);
                tablero[total]=new JLabel("1");// se crea el objeto jlabel
                tablero[total].setBackground(Color.red);
                //se le da un borde
                tablero[total].setBorder(BorderFactory.createLineBorder(Color.black));
                //se le da una pocicion en x 
                int posicionx=((x+1)*espacio+(x*tamanox));
                System.out.println(posicionx);
                //se le da una posicion en x & y & se le da un tamaño en x & y 
                tablero[total].setBounds(posicionx,posiciony, tamanox, tamanoy);
                // se añade el label a un panel
                jPanel1.add(tablero[total]);
                //se le da que el label es visible
                tablero[total].setVisible(true);
                total++;
                //System.out.println((espacio+x*tamanox));
            }
        }
    }

sábado, 1 de septiembre de 2012

cambio de varios jpanel's en unico jframe

Una obcion util al momento de realizar programas es el cambio de paneles en una misma ventana con el click de un boton  o la seleccion de un menu, puesto que nos separa las diferentes secciones de codigo segun lo necesitemos

primero se añade un jpanel dentro de la ventana  y se le da el tamaño deceado, el panel es la parte seleccionada en el cuadro rojo

 luego se le da click derecho y se va a set Layout(1) que es un tipo de ordenamiento y se selecciona el ordenamiento card layout(2)

se crea los paneles como clases de jpanel que seran los que utilizaremos con cada obcion en este caso tenemos ingresos(1) y modificar(2)

en el jframe se añade este codigo que es el que ara el cambio de paneles, asi tendria que quedar la clase pantalla

package cambioventana;

import java.awt.CardLayout;

/**
 *
 * @author jaac747
 */
public class pantalla extends javax.swing.JFrame {

    /**
     * Creates new form pantalla
     */
    
    private CardLayout paletas;//esta es una obcion que nos permite hacer el cambio de panels en la misma ventana
    private ingreso ingresos=new ingreso();// jpanel que contiene ingresos
    private modificar modifica= new modificar();//jpanel que contiene modificar
    boolean cambios=true;
    public pantalla() {
        initComponents();
        
        //se añade este codigo

        jPanel1.setLocation(WIDTH, WIDTH);// le digo que tenga una localizacion dentreo de la ventana
        jPanel1.add(ingresos,"menu1"); //le indico que ingresos tendra de sobrenombre menu1 y que pertenece a jpanel de ventana
        jPanel1.add(modifica,"menu2");//le indico que modifica tendra el sobrenombre de menu2 y que pertenece a jpanel de ventana

        paletas = (CardLayout)jPanel1.getLayout(); //le agrego la obcion a paletas para que aga el cambio
        paletas.show(jPanel1, "menu1");// le indico que jpanel tendra el cambio y cual panel mostrara
    }
    
    /**
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
   
    /**
     * esto es para que al precionar el boton aga el cambio
     */
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
            if(cambios==true){// comprueva que panel esta como son dos se usa true o false
                paletas.show(jPanel1, "menu2");// hace cambio entre el panel uno  al 2
                cambios= false;
            }else{
                paletas.show(jPanel1, "menu1");// hace cambio entre el panel 2 al 1 
                cambios= true;
            }
    }

    /**
     * @param args the command line arguments
     */

    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JPanel jPanel1;
    // End of variables declaration
}

viernes, 31 de agosto de 2012

Nuevo proyecto en netbeans y ventana GUI

Para iniciar un nuevo proyecto en netbeans primero iniciamos la aplicacion, si es la primera ves que se utiliza netbeans aparecera en blanco sin ningun proyecto por seleccionar y seguir trabajando en el. se da click en el boton de crear nuevo proyecto:
Se escoje la categoria de java, y se escoje el tipo de proyecto en este caso una aplicacion de escritorio ("java Aplication"), y se le da next
se pone el nombre del proyecto que represente lo que vamos a trabajar, y se da finalizar
y se creo nuestro primer proyecto:
INSERTAR UNA INTERFAS GRAFICA EN NUESTRO PROYECTO

 Primero no situamos en la parte izquierda y le damos click DERECHO en el paquete de nuestro proyecto en este caso es la cajita amarilla partida en 4 se selecciona nuevo(1) y se escoje JFrame(2)
se pone el nombre de la ventana y se le da finalizar
se crea la interface grafica y se agrega a nuestro proyecto (1)
(2) es el area de trabajo de la ventana
(3) son los componentes que podemos agregar a la ventana solo se arrastra el componente que queremos agregar al area de trabajo y se agrega
 para programar esta ventana y hacer que los botones y demas tengan obciones se da en source
 y nos muestra el codigo de trabajo de la ventana , hay lo podemos modificar y agregar mas codigo