Está en la página 1de 6

LABORATORIO DE REDES NEURONALES

COMPUERTA LOGICA OR
INTEGRANTE: FERNANDO HELMER MONTENEGRO DIAZ

1. PROGRAMA EN MATLAB

%Definición de la función lógica OR


X=[0 0 1 1 ; 0 1 0 1 ] ;%Entrada
D=[0 1 1 1] ;%Salida

%Crear Red Neuronal Perceptrón


red = newp([0 1;0 1],1)

%Entrenamiento de la Red Neuronal


red = train(red,X,D)

%Mostrar los pesos y umbrales obtenidos después del entrenamiento


Pesos=red.iw{1,1};
Bias=red.b{1};

2. GRAFICAS DEL ENTRENAMIENTO


3. PESOS SINAPTICOS Y UMBRALES DESPUES DEL ENTRENAMIENTO

Pesos=[1 1]
Bias=[-1]

4. VALIDANDO RED NEURONAL

%Validando la red neuronal


X1=[1 0 1 1 ; 0 1 1 1 ] ;%Entrada

%Salida
Y=sim(red,X1)
ENTRADA

SALIDA DE
SIMULACION
5. DISEÑO EN PROTEUS

6. PROGRAMA EN ARDUINO

//Declaracion de entradas, pesos, salida y umbrales


int x1,x2,y,w1,w2,b;

void setup()
{
//Configurando entradas x1, x2 como entradas
pinMode(2,INPUT);
pinMode(3,INPUT);
//Configurando visualizador de x1,x2,y como salidas
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
//Apagano los visualizadores
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
}
void loop()
{
//Cargando los pesos sinapticos y umbral determinados en matlab
w1=1;
w2=1;
b=-1;
//Leyendo los potenciómetros
if(digitalRead(2)==HIGH)
x1=1;
else
x1=0;

if(digitalRead(3)==HIGH)
x2=1;
else
x2=0;

//Mostrando el estado de los potenciómetros en los visualizadores


digitalWrite(4,x1);
digitalWrite(5,x2);
//Calculando la sumatoria en el núcleo de la red neuronal
y=x1*w1+x2*w2+b;
//Evaluando Y con la función de activación
if(y<0)
digitalWrite(6,LOW);
else
digitalWrite(6,HIGH);

También podría gustarte