foto02.jpg
Bienvenido, Invitado
Username: Password:
No tiene cabida en otra categoría, cuestiones generales...

TEMA: Monitor de servicio homebrew

Monitor de servicio homebrew 3 años 5 meses ago #7606

  • esdrufao
  • esdrufao's Avatar
  • DESCONECTADO
  • Navegador Experto
  • Temas: 139
  • Thank you received: 9
  • Karma: 2
Hola a todos,buenola idea ya la expuse en el whatsapp,pero voy a ampliarla aqui.

Empecemos con el proyecto,el monitor de servicio costara de un generador de rf(dds),en mi caso de 1Hz a 30MHz con modulacion generada por el propio arduino.La entrada de frecuencia y las funciones seran por teclado matricial,dispondremos de un atenuador de dos o mas pasos para la salida del generador y de un watimetro hasta 100w.Creo que es suficiente para ajustar los equipos con cierta precision.

la construccion sera por bloques,ya que asi sera mas facil modificar y ampliar al gusto de cada uno.

Soft del arduino,de momento solo el generador de señal y la conmutacion rx test/tx test.Mencionar que el soft original es de Joaquín Paredes,en base a el lo ire modificando.

#include <Wire.h>
#include "Keypad.h"
#include <AH_AD9850.h>
//#include <AD9850.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // set the LCD address to 0x27

const byte RX=22;
const byte TX=23;
const byte MOD=24;
const byte ATT=25;
AH_AD9850 AD9850(10, 11, 12, 13);
const byte ROWS = 4; //cuatro rows
const byte COLS = 4; //cuatro columnas
char keys[ROWS][COLS] =
{{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}};
byte rowPins[ROWS] = { 2, 3, 4, 5}; //connectar filas a pin del Arduino
byte colPins[COLS] = { 6, 7, 8, 9}; //connectar columnas a pin del Arduino
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

int NuMax; //limitar a 8 digitos la frecuencia
String teclas; //tecla que se va pulsando y su concatenación
char cadena[9]; //para poder hacer la conversion a número
long frecuencia; //f a mostrar
char key[1]; //captura tecla


void setup()
{
//lcd.init(); // initialize the lcd
lcd.begin(16,2);// Indicamos medidas de LCD
NuMax = 0;
lcd.blink();
lcd.print("MONITOR SERVICE");
lcd.setCursor(0,1);
lcd.print(" EA1HXG ");
delay(4000);
lcd.clear();
}

void loop()
{
// AD9850.set_frequency(0,0,1000);
leerKeypad();
}


void leerKeypad()
{
char key = keypad.getKey();
if (key != NO_KEY){
if (NuMax < 9) {
switch (key) {
case '1':
teclas = (teclas + "1");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '2':
teclas = (teclas + "2");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '3':
teclas = (teclas + "3");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '4':
teclas = (teclas + "4");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '5':
teclas = (teclas + "5");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '6':
teclas = (teclas + "6");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '7':
teclas = (teclas + "7");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '8':
teclas = (teclas + "8");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '9':
teclas = (teclas + "9");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '0':
teclas = (teclas + "0");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
}
}
switch (key) {
case '*':
teclas = "";
lcd.clear();
lcd.blink();
lcd.print("INPUT FRECUENCY");
lcd.setCursor(0,1);
lcd.print("1Hz to 30MHz + #");
delay(1000);
lcd.clear();
NuMax = 0;
teclas = "";
delay(150);
break;
case '#':
delay(150);
teclas.toCharArray(cadena,9);
frecuencia=atol (cadena); // convierte cadenas tipo string a numero
AD9850.set_frequency(frecuencia);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(frecuencia);
lcd.print(" Hz");
teclas = "";
NuMax = 0;
break;
case 'A':
lcd.clear();
lcd.setCursor(0,0);
lcd.print("RX TEST");
digitalWrite(TX,LOW);
digitalWrite(RX,HIGH);
teclas = "";
NuMax = 0;
delay(150); // debounce
break;
case 'B':
lcd.clear();
lcd.setCursor(0,0);
lcd.print("TX TEST");
digitalWrite(RX,LOW);
digitalWrite(TX,HIGH);
teclas = "";
NuMax = 0;
delay(150); // debounce
break;
case 'C':
delay(150); // debounce
lcd.clear();
lcd.setCursor(0,0);
lcd.print("MOD ON");
digitalWrite(MOD,HIGH);
else {
if (MOD=HIGH)
digitalWrite (MOD,LOW)
}
teclas = "";
NuMax = 0;
break;
case 'D':
delay(150); // debounce
lcd.clear();
lcd.setCursor(0,0);
lcd.print("1000000 Hz");
AD9850.set_frequency(1000000);
teclas = "";
NuMax = 0;
break;}
}
}

EDITADO la carpeta con la info es esta,aqui ire añadiendo la info del proyecto.

onedrive.live.com/redir?resid=E7FE5DFEA9...&ithint=folder%2cjpg
EA1HXG-Miguel Angel Eirabella
Esta dirección de correo electrónico está protegida contra spambots. Usted necesita tener Javascript activado para poder verla.
Última Edición: 3 años 5 meses ago Por esdrufao.
El administrador ha deshabilitado la escritura pública.

Monitor de servicio homebrew 3 años 5 meses ago #7609

  • esdrufao
  • esdrufao's Avatar
  • DESCONECTADO
  • Navegador Experto
  • Temas: 139
  • Thank you received: 9
  • Karma: 2
Hola de nuevo me he dado cuenta de que no os deje el boceto del cacharro.
EA1HXG-Miguel Angel Eirabella
Esta dirección de correo electrónico está protegida contra spambots. Usted necesita tener Javascript activado para poder verla.
Última Edición: 3 años 5 meses ago Por esdrufao.
El administrador ha deshabilitado la escritura pública.

Monitor de servicio homebrew 3 años 5 meses ago #7610

  • esdrufao
  • esdrufao's Avatar
  • DESCONECTADO
  • Navegador Experto
  • Temas: 139
  • Thank you received: 9
  • Karma: 2
Bueno ya acabe el primer modulo,el generador RF con modulacion.






EA1HXG-Miguel Angel Eirabella
Esta dirección de correo electrónico está protegida contra spambots. Usted necesita tener Javascript activado para poder verla.
Última Edición: 3 años 5 meses ago Por esdrufao.
El administrador ha deshabilitado la escritura pública.
The following user(s) said Thank You: ea4gmz, EA7JKT

Monitor de servicio homebrew 3 años 5 meses ago #7613

  • elcaja
  • elcaja's Avatar
  • DESCONECTADO
  • Navegador Senior
  • Temas: 52
  • Thank you received: 6
  • Karma: 1
En el esquema veo que usars dos chips ad8307, que no los conocía. he visto que son unos amplificadores. Me imgino que si estan conectados al arduino querras generar una onda cuadrada y amplificada, ¿es asi?
Última Edición: 3 años 5 meses ago Por elcaja.
El administrador ha deshabilitado la escritura pública.

Monitor de servicio homebrew 3 años 5 meses ago #7615

  • esdrufao
  • esdrufao's Avatar
  • DESCONECTADO
  • Navegador Experto
  • Temas: 139
  • Thank you received: 9
  • Karma: 2
Hola a todos,el AD8307 es un conversor de frecuencia a voltaje de 0 a 500MHz,como ves en el bosquejo hay dos,uno en la linea de salida del generador y otro en la linea de entrada y son para monitorizar la señal de entrada y salida y mostrarla en dB´s.

lo que quiero hacer es esto:



Y si consigo dominar los lcd graficos esto:



asi mostraria todo en un solo lcd,no incluire el analizador de espectro que si no ya se complica mas la cosa
EA1HXG-Miguel Angel Eirabella
Esta dirección de correo electrónico está protegida contra spambots. Usted necesita tener Javascript activado para poder verla.
El administrador ha deshabilitado la escritura pública.

Monitor de servicio homebrew 3 años 5 meses ago #7616

  • EA2SN
  • EA2SN's Avatar
  • DESCONECTADO
  • Navegador Platino
  • Temas: 504
  • Thank you received: 67
  • Karma: 12
Los AD8307 son microvatímetros. Uno de ellos mediría la señal enviada al receptor" y el otro la potencia del transmisor.
Para el primero, dado que el mínimo nivel es de unos -80 dBm requeriría un atenuador adicional fijo de -30 dB para poder "afinar" en recepción.
Para el segundo, dado que el nivel máximo es de unos +10 dBm requiere o bien de un muestreador de -40 dB o un atenuador después de la carga de 100 W.
Es interesante la idea de modular la señal con un NE602.
Habría que ver el tema de los "filtros pasabajos" de los módulos DDS.

Se pueden sacar más ideas del PHSNA (analizador escalar de redes personal), en lo que respecta al uso del generador y milivatímetro.
pages.suddenlink.net/wa5bdu/PHSNA_QQ_Spring_14.pdf
Hay un grupo en Yahoo y tenéis más información en:
www.cwtd.org/Dec10-2013.html

jon, ea2sn
El administrador ha deshabilitado la escritura pública.
The following user(s) said Thank You: esdrufao
Moderators: ea3ghs
Time to create page: 0.222 seconds