# Sender Circuit for Ultrasound

I'm building this Instructables project: Body-ultrasound Sonography With Arduino, which is using ultrasound to see inside the body. However I'm having some issues with the sender circuit, shown below:

The Arduino is being used to trigger the SN74121 and so a short 100-200ns should e created and sent to the ICL7667. From this a switching pulse between 0-9V should be generated to drive the power mosfet, IRL620.

However, my issue is the ICL7667. At pin 6 my output is 0v and doesn't change. At pin 2 and 4 the voltage measures to be 3.88V. Therefore the power mosfet gate isn't being turned ON. Not sure what I'm doing wrong. I'm using the IC7667.

I'm also using two DC power bench supplies that are set to 9V/1A and are connected together to give +9V/GND/-9V.

Full circuit diagram :

Circuit Wirings, the blue cable going to SN74121 is Arduino trigger.

DC bench power supply, the current being drawn from the circuit:

Arduino Code:

#define pin_output 5
#define pin_input_magnification 4
#define pin_input_sleep 3

unsigned long start_time;
unsigned long stop_time;
unsigned int values[600];    // Array with the read voltage values

int i, j;
int Trigger_time;    // Duration of the trigger pulse

// =========================
// ========= SETUP =========
// =========================

void setup()
{
Serial.begin(115200);

REG_ADC_MR = 0x10380080;              // change from 10380200 to 10380080, 1 is the PREESCALER and 8 means FREERUN

pinMode(pin_output, OUTPUT);
pinMode(pin_input_magnification, INPUT);    // Switch-input for magnification
pinMode(pin_input_sleep, INPUT);            // Switch-input for sleep-mode
digitalWrite(pin_output, LOW);

Trigger_time = 1;                     //Duration of the trigger pulse

// ========================
// ========= LOOP =========
// ========================

void loop()
{
for (j = 0; j < 18; j++)   // Display of 18 scans side by side in the x-direction
{
// Output of the trigger signal
// ==========================

digitalWrite(pin_output,HIGH);
//delayMicroseconds(Trigger_time);
digitalWrite(pin_output,LOW);

// Reading in the US reflections
// ===========================

start_time = micros();

if (digitalRead(pin_input_magnification) == LOW)   // without time extension reading of 300 values; recorded time span = 120 µsec
{
for(i = 0; i < 300; i++)
{

//delayMicroseconds(1);
}
}
else       //reading of 600 values ​​with time extension; recorded time span = 240 µsec
{
for(i = 0; i < 600; i++)
{

//delayMicroseconds(1);
}

}

//delayMicroseconds(100);
//delay(5);

stop_time = micros();

Serial.print("Total time for 300 values: ");
Serial.print(stop_time-start_time);
Serial.println(" microseconds");
Serial.print("Average time in microseconds per conversion: ");
Serial.println((float)(stop_time-start_time)/300);

Serial.println("Values: ");

for(i = 0;i < 600; i++)
{
Serial.println(values[i]);
}

// Interrogate the pause button
// =====================

{

{
// sleeping
}
}

delay(1000);
}

}

• Where are you connecting the minus 9 volts? Aug 9, 2021 at 8:56
• Hi @Andyaka, the -9V is used in the receiver + peak detector circuit to power the op-amps. I'll attach the full circuit diagram. Aug 9, 2021 at 9:09
• Pin 6 is VDD on the 7667, did you mean pin 5 and 7? Aug 9, 2021 at 10:05
• Hi! @OskarSkog yes, apologies I meant pins 5 and 7. Aug 9, 2021 at 10:36