1 / 7
Cat water fountain — image 1
1 / 7

Cat water fountain

Order a print of this model

We calculate the final price from your selected file. You review and accept it before payment.

Saved on this device.

Fountain with circulating water

Rating
0 / 5
Likes
59
Downloads
233
Makes
0
Views
2,016
Reviews
0

Updated at source:

Model information

Category
Pets
License
Creative Commons — Attribution

Cat water fountain

 

Cat water bowl with circulating water for your pet. Easy to assemble.

When the cat gets close to the bowl, the fountain starts.

You can use the breadboard to connect the components,  soldering is need only to connect wires to dc jack

 

 

 

 

Components

  • clone arudino nano ch340
  • sensor HC-SR04
  • breadboard
  • BAT43 diode
  • transistor 2N2222
  • resistor 4.7kΩ
  • water pump DC 3-5V
  • DC jack
  • silicon tube 6x8 mm - 145 mm
  • 4x screws M3x12
  • 5v adapter
  • wires
  • 3d printed model

 

 

 

 

Print settings

  • layer height 0.2 mm
  • infill 20%
  • perimetres 3
  • bottom solid layers 3
  • support only under "tube brige" and on bottom recomended

 

Component Wiring

Transistor (NPN, e.g., BC547 or 2N2222)
  • Base (B) → via a 4.7kΩ resistor → D4 on Arduino Nano
  • Collector (C) → negative terminal of the pump
  • Emitter (E) → GND
Pump (DC 3–5V)
  • Red wire (positive) → 5V power supply
  • Black wire (negative) → transistor collector
BAT43 Diode (protection against back EMF)
  • Anode (+) → transistor collector
  • Cathode (−) → +5V (pump power supply)
HC-SR04 (ultrasonic sensor)
  • VCC → 5V
  • GND → GND
  • Trig → D2 on Arduino Nano
  • Echo → D3 on Arduino Nano

 

Code

#define TRIG_PIN 3
#define ECHO_PIN 2
#define PUMP_PIN 4

void setup() { pinMode(TRIG_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); pinMode(PUMP_PIN, OUTPUT); digitalWrite(PUMP_PIN, LOW); Serial.begin(9600); }

long measureDistance() { digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2); digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW);

long duration = pulseIn(ECHO_PIN, HIGH);
long distance = duration * 0.034 / 2;  // Convert to cm
return distance;

}

void loop() { long distance = measureDistance(); Serial.print("Distance: "); Serial.print(distance); Serial.println(" cm");

if (distance < 25) {  // If an object is closer than 25 cm
    digitalWrite(PUMP_PIN, HIGH);  // Turn on the pump
    delay(15000);  // 15 seconds
    digitalWrite(PUMP_PIN, LOW);   // Turn off the pump
}

delay(5000);  // Short delay between measurements

}

 

 

 

Tags