Cat water fountain
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
Fountain with circulating water
- Ocena
- 0 / 5
- Polubienia
- 59
- Pobrania
- 230
- Wydruki
- 0
- Wyświetlenia
- 2001
- Oceny
- 0
Aktualizacja u źródła:
Informacje o modelu
- Źródło
- Printables
- Kategoria
- Pets
- Licencja
- 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 4void 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
}