Encomendado em dias úteis antes das 14:00 = enviado no mesmo dia e, em 98% dos casos, entregue no dia seguinte. Devolução gratuita 30 dias para refletir 1 ano de garantia

Esquema de ligação e exemplo de código

Como ligar o Módulo gerador de sinal DDS AD9850 a um Arduino UNO ou ESP32, com um sketch de exemplo que podes carregar já.

AD9850 DDS Sine & Square Wave Generator

This project controls an AD9850 DDS module via a 4-wire serial interface to generate precise sine and square wave frequencies. The Arduino initializes the DDS module and periodically switches the output frequency between 1 kHz, 10 kHz, and 100 kHz. Connect an oscilloscope or frequency counter to ZOUT1 (sine wave) or QOUT1 (square wave) to inspect the output signal.

Esquema de ligação: Módulo gerador de sinal DDS AD9850 num Arduino UNO
Esquema de ligação · Clique para ampliar
Tabela de ligação: Módulo gerador de sinal DDS AD9850 num Arduino UNO
Tabela de ligação · Clique para ampliar
AD9850_DDS_Sine_Square_Wave_Generator.ino · compilado e testado
/*
 * ==================================================================
 *  Generated by Codey.online  —  https://www.codey.online
 * ==================================================================
 *  Project   : AD9850 DDS Sine & Square Wave Generator
 *  Board     : Arduino UNO (arduino:avr:uno)
 *  Parts     : AD9850 DDS Signal Generator Module
 *  Libraries : none (built-in)
 *
 *  Codey Online is an AI-powered browser IDE for Arduino and ESP32.
 *  Describe your project and Codey writes the code, draws the wiring
 *  diagram and uploads it to your board, straight from the browser.
 *  This code is free to use, modify and share, without warranty.
 * ==================================================================
 */

const int PIN_W_CLK = 8;
const int PIN_FQ_UD = 9;   // Labeled FU_UD on module
const int PIN_DATA  = 10;
const int PIN_RESET = 11;

const unsigned long AD9850_REF_CLOCK = 125000000UL; // 125 MHz reference oscillator

void pulsePin(int pin) {
  digitalWrite(pin, HIGH);
  delayMicroseconds(1);
  digitalWrite(pin, LOW);
  delayMicroseconds(1);
}

void ad9850Reset() {
  digitalWrite(PIN_RESET, HIGH);
  delayMicroseconds(1);
  digitalWrite(PIN_RESET, LOW);
  delayMicroseconds(1);
  pulsePin(PIN_W_CLK);
  pulsePin(PIN_FQ_UD);
}

void ad9850SetFrequency(double freqHz) {
  // Calculate 32-bit tuning word: (freq * 2^32) / ReferenceClock
  uint32_t tuningWord = (uint32_t)((freqHz * 4294967296.0) / (double)AD9850_REF_CLOCK);

  // Transmit 32-bit frequency tuning word (LSB first)
  for (int i = 0; i < 32; i++) {
    digitalWrite(PIN_DATA, (tuningWord >> i) & 0x01);
    pulsePin(PIN_W_CLK);
  }

  // Transmit 8 control/phase bits (all 0 for normal operation)
  for (int i = 0; i < 8; i++) {
    digitalWrite(PIN_DATA, LOW);
    pulsePin(PIN_W_CLK);
  }

  // Latch the updated frequency into the DDS core
  pulsePin(PIN_FQ_UD);
}

void setup() {
  pinMode(PIN_W_CLK, OUTPUT);
  pinMode(PIN_FQ_UD, OUTPUT);
  pinMode(PIN_DATA, OUTPUT);
  pinMode(PIN_RESET, OUTPUT);

  digitalWrite(PIN_W_CLK, LOW);
  digitalWrite(PIN_FQ_UD, LOW);
  digitalWrite(PIN_DATA, LOW);
  digitalWrite(PIN_RESET, LOW);

  Serial.begin(115200);
  while (!Serial) {
    ;
  }

  Serial.println(F("AD9850 DDS Generator Initialized"));
  ad9850Reset();
}

void loop() {
  const double testFrequencies[] = {1000.0, 10000.0, 100000.0};

  for (int i = 0; i < 3; i++) {
    double freq = testFrequencies[i];
    ad9850SetFrequency(freq);
    Serial.print(F("Output frequency set to: "));
    Serial.print(freq);
    Serial.println(F(" Hz"));
    delay(3000);
  }
}

Wiring diagram and example code generated by Codey.online — https://www.codey.online

AD9850 DDS Signal Generator with ESP32

This project generates precise sine and square wave signals using the AD9850 DDS module controlled by an ESP32. The sketch steps through a sequence of frequencies (1 kHz, 10 kHz, 100 kHz, and 1 MHz) every 3 seconds. Connect an oscilloscope or frequency counter to ZOUT1 for a sine wave or QOUT1 for a square wave output.

Esquema de ligação: Módulo gerador de sinal DDS AD9850 num ESP32 DevKit V1
Esquema de ligação · Clique para ampliar
Tabela de ligação: Módulo gerador de sinal DDS AD9850 num ESP32 DevKit V1
Tabela de ligação · Clique para ampliar
AD9850_DDS_Signal_Generator_with_ESP32.ino · compilado e testado
/*
 * ==================================================================
 *  Generated by Codey.online  —  https://www.codey.online
 * ==================================================================
 *  Project   : AD9850 DDS Signal Generator with ESP32
 *  Board     : ESP32 DEVKIT V1 (esp32:esp32:esp32doit-devkit-v1)
 *  Parts     : AD9850 DDS Signal Generator Module
 *  Libraries : none (built-in)
 *
 *  Codey Online is an AI-powered browser IDE for Arduino and ESP32.
 *  Describe your project and Codey writes the code, draws the wiring
 *  diagram and uploads it to your board, straight from the browser.
 *  This code is free to use, modify and share, without warranty.
 * ==================================================================
 */

// AD9850 DDS Signal Generator Demo on ESP32
const int W_CLK_PIN = 18;
const int FU_UD_PIN = 19;
const int DATA_PIN  = 23;
const int RESET_PIN = 5;

// 125 MHz reference clock crystal on board
const double REF_CLK = 125000000.0;

const double testFrequencies[] = {1000.0, 10000.0, 100000.0, 1000000.0};
const int numFrequencies = sizeof(testFrequencies) / sizeof(testFrequencies[0]);
int currentFreqIndex = 0;

void pulseHigh(int pin) {
  digitalWrite(pin, HIGH);
  delayMicroseconds(1);
  digitalWrite(pin, LOW);
  delayMicroseconds(1);
}

void resetAD9850() {
  pulseHigh(RESET_PIN);
  pulseHigh(W_CLK_PIN);
  pulseHigh(FU_UD_PIN); // Enable serial load mode
}

void sendFrequency(double frequency) {
  uint32_t tuningWord = (uint32_t)((frequency * 4294967296.0) / REF_CLK);

  // Send 32-bit frequency tuning word (LSB first)
  for (int i = 0; i < 32; i++) {
    digitalWrite(DATA_PIN, (tuningWord >> i) & 0x01);
    pulseHigh(W_CLK_PIN);
  }

  // Send 8 control/phase bits (0x00 for 0 phase offset)
  for (int i = 0; i < 8; i++) {
    digitalWrite(DATA_PIN, LOW);
    pulseHigh(W_CLK_PIN);
  }

  // Latch new frequency to output
  pulseHigh(FU_UD_PIN);
}

void setup() {
  Serial.begin(115200);
  delay(500);
  Serial.println("AD9850 DDS Signal Generator Initializing...");

  pinMode(W_CLK_PIN, OUTPUT);
  pinMode(FU_UD_PIN, OUTPUT);
  pinMode(DATA_PIN,  OUTPUT);
  pinMode(RESET_PIN, OUTPUT);

  digitalWrite(W_CLK_PIN, LOW);
  digitalWrite(FU_UD_PIN, LOW);
  digitalWrite(DATA_PIN,  LOW);
  digitalWrite(RESET_PIN, LOW);

  resetAD9850();
  Serial.println("AD9850 ready!");
}

void loop() {
  double freq = testFrequencies[currentFreqIndex];
  sendFrequency(freq);

  Serial.print("Output frequency set to: ");
  Serial.print(freq, 0);
  Serial.println(" Hz");

  currentFreqIndex = (currentFreqIndex + 1) % numFrequencies;
  delay(3000);
}

Wiring diagram and example code generated by Codey.online — https://www.codey.online

Módulo gerador de sinal DDS AD9850

Geradores de sinal/geradores de funções são super úteis, desde RF até lógica embarcada, mas normalmente não são muito baratos.

Boas notícias: com este Módulo DDS AD9850, você pode criar, com alguma montagem, o seu próprio gerador de frequência Arduino flexível, funcional e fácil de usar!

Com um display LED, um potenciômetro rotativo e um Arduino você pode criar um gerador de sinal independente. (Não se esqueça de adquirir um conversor CP2102 USB para TTL Serial caso ainda não tenha um em casa)

Também pode optar por combiná-lo apenas com Arduino Uno numa breadboard.

Uma rota completamente diferente é usar este módulo para criar o seu próprio Software Defined Radio (SDR).

Em suma, um ótimo módulo para começar a trabalhar!

Características:

  • 125 MHz de velocidade de clock
  • DAC de alto desempenho no chip e comparador de alta velocidade
  • DAC SFDR > 50 dB @ 40 MHz AOUT
  • Palavra de ajuste de frequência de 32 bits
  • Interface de controlo simplificada: byte paralelo ou formato de carregamento serial
  • Capacidade de modulação de fase
  • Funcionamento com uma única alimentação de 3,3 V ou 5 V
  • Baixo consumo: 380 mW @ 125 MHz (5 V); 155 mW @ 110 MHz (3,3 V)
  • Função de desligamento
  • Encapsulamento SSOP ultrapequeno com 28 terminais

APLICAÇÕES:

  • Síntese de onda senoidal ágil em frequência/fase
  • Recuperação de clock e circuitos de bloqueio para comunicação digital
  • Gerador de codificação ADC controlado digitalmente
  • Aplicações de oscilador local ágil
  • AD9850 DDS
  • 3,3 V of 5 V
  • LED display
  • 125 MHz
Ao reproduzir, o vídeo do YouTube é carregado.

Por que escolher este produto?

  • Makkelijk te gebruiken – Te combineren met Arduino en breadboard.
  • Vrijstaande generator – Met display, potentiometer en Arduino.
  • Eigen SDR bouwen – Ook inzetbaar voor Software Defined Radio.
  • Laag stroomverbruik – Werkt met 380 mW of 155 mW.
  • Fase-modulatie mogelijk – Ondersteunt fasemodulatie.
Especificações
Alimentação3,3 V ou 5 V
Frequência de clock125 MHz
Potência380 mW @ 125 MHz (5 V); 155 mW @ 110 MHz (3,3 V)
ModeloAD9850
Interface de controle simplificadaparallelle byte of serieel Laadformaat
Baixo consumo380 mW @ 125 MHz (5 V); 155 mW @ 110 MHz (3,3 V)
Número de derivações28

Frequentemente comprados juntos

Total: € 20,90

Avaliações

★★★★★ 5,0/5 1 avaliação
  • ★★★★★Aad StekelenburgCompra verificada

    Excelente

Escrever uma avaliação
A tua avaliação

Envio & devoluções

Envio

  • Pacote com Track & Trace€ 6,20Alemanha 1-3, França 2-3, Espanha/Itália 2-4, outros países 3-5 dias úteis
  • Pacote com Track & Trace€ 7,35Alemanha 1-3, França 2-3, Espanha/Itália 2-4, outros países 3-5 dias úteis
  • Pacote com Track & Trace€ 8,50Alemanha 1-3, França 2-3, Espanha/Itália 2-4, outros países 3-5 dias úteis
  • Pacote com Track & Trace€ 9,15Alemanha 1-3, França 2-3, Espanha/Itália 2-4, outros países 3-5 dias úteis
Tudo sobre envios

Devoluções

Não ficas satisfeito? Tens 30 dias após a receção para devolver o produto.

Tudo sobre devoluções

Vistos recentemente

Eletroíman DC12V 100KG

Eletroíman DC12V 100KG

€ 33,90
Eletroíman DC12V 60KG

Eletroíman DC12V 60KG

€ 18,70
Servo SG90 Micro 180 graus

Servo SG90 Micro 180 graus

€ 3,99