Arduino powered diy sea sweep! Oscillating wavemaker diy!

OP
OP
mstockmaster

mstockmaster

Active Member
View Badges
Joined
Mar 6, 2017
Messages
318
Reaction score
285
Location
Columbus Ohio
Rating - 0%
0   0   0
Awesome! I'll be interested to hear your long term success with it. The downfall of the seasweeps and similar devices all seem to be the off-axis loading on the drive mechanism from the pumps.
Agree, long term success isn't at all guaranteed. But the servos are cheeeeap and I can replace fairly easily. But if I burn through them too quickly I'll decouple the servo from the powerhead and use the servo to turn the powerhead through a linkage or some sort of belt setup. I'd just have to mount the powerhead to some bearings.
 

TheEngineer

Formerly icecool2
View Badges
Joined
Nov 26, 2011
Messages
7,296
Reaction score
7,695
Location
PA
Rating - 0%
0   0   0
Yes! There would still be a loading issue, but it could be borne by a bearing designed to handle it vice a servo which generally isn't.
 
OP
OP
mstockmaster

mstockmaster

Active Member
View Badges
Joined
Mar 6, 2017
Messages
318
Reaction score
285
Location
Columbus Ohio
Rating - 0%
0   0   0
Yes! There would still be a loading issue, but it could be borne by a bearing designed to handle it vice a servo which generally isn't.
My hope though is that since this servo has double sided bearings on an arm and is meant for robotics applications that it will be more suitable for the task than rc style servos.
 

hollback

Well-Known Member
View Badges
Joined
Oct 7, 2009
Messages
788
Reaction score
468
Location
Columbus, Ohio
Rating - 100%
4   0   0
Awesome! I'll be interested to hear your long term success with it. The downfall of the seasweeps and similar devices all seem to be the off-axis loading on the drive mechanism from the pumps.

Yep. That’s what I ran into. The large Tunze and Jebao pumps pulsing on and off put a lot of torque on the axel. After a few rounds of redesign, and a little help from Geo’s CNC machine, I was able to solve the problem and my oscillators have been running continuously since the end of 2011. There is an old thread somewhere on RC.

With a smaller pump like yours, you should be fine. If anything, maybe use thinner acrylic on the mount so it can bend and absorb the movement from the pump.
 

tgp4274

Well-Known Member
View Badges
Joined
Dec 10, 2013
Messages
652
Reaction score
359
Location
sandwich IL
Rating - 0%
0   0   0
ggeeeeeee great thanks............ :/
wife's gonna kill me as i now have a new project for my tank.... :D lol

awesome job buddy looks great!!
 
OP
OP
mstockmaster

mstockmaster

Active Member
View Badges
Joined
Mar 6, 2017
Messages
318
Reaction score
285
Location
Columbus Ohio
Rating - 0%
0   0   0
ggeeeeeee great thanks............ :/
wife's gonna kill me as i now have a new project for my tank.... :D lol

awesome job buddy looks great!!
Don't worry, my wife let me do this one...and she never lets me do anything fun.

Let me know if you want the code .
 

revhtree

Owner Administrator
View Badges
Joined
May 8, 2006
Messages
47,822
Reaction score
87,605
Rating - 100%
1   0   0
Too cool!
 

ReefInskeep

Active Member
View Badges
Joined
Feb 20, 2017
Messages
218
Reaction score
243
Rating - 0%
0   0   0
I’d love the code for this and maybe a wiring diagram or photo of the breadboard and everything so I don’t have to reinvent the wheel or spend too much time figuring that part out. Been a while since I’ve built electronics but I’ve still got all my stuff so might as well try this. :) Awesome.
 

Greef_in_the_Reef

Community Member
View Badges
Joined
Dec 28, 2017
Messages
50
Reaction score
37
Location
Chandler
Rating - 0%
0   0   0
Agree, long term success isn't at all guaranteed. But the servos are cheeeeap and I can replace fairly easily. But if I burn through them too quickly I'll decouple the servo from the powerhead and use the servo to turn the powerhead through a linkage or some sort of belt setup. I'd just have to mount the powerhead to some bearings.

What about a stepper motor, they can handle the stress and will most likely last longer.
 
OP
OP
mstockmaster

mstockmaster

Active Member
View Badges
Joined
Mar 6, 2017
Messages
318
Reaction score
285
Location
Columbus Ohio
Rating - 0%
0   0   0
What about a stepper motor, they can handle the stress and will most likely last longer.
Theoretically they're no better or worse than a servo, only a different control method. Servos are a bit more appropriate for this application and are more commonly available at hobbyist type prices. The only real way that you can guarantee that the stress won't be borne by the motor assembly is by decoupling the motor assembly from the powerhead itself. They also make heavier duty robotics or industrial servos, but the price point wasn't going to work for a project of this scope.

I'd also consider trying something like this.

https://www.robotshop.com/en/lynxmo...Yzohgs-9Lyy4qOQ4K_CqYnHcHxgscvS8aAmYUEALw_wcB

This is basically what I'm using but this is a bit more heavy duty.
 
Last edited:
OP
OP
mstockmaster

mstockmaster

Active Member
View Badges
Joined
Mar 6, 2017
Messages
318
Reaction score
285
Location
Columbus Ohio
Rating - 0%
0   0   0
OP
OP
mstockmaster

mstockmaster

Active Member
View Badges
Joined
Mar 6, 2017
Messages
318
Reaction score
285
Location
Columbus Ohio
Rating - 0%
0   0   0
I’d love the code for this and maybe a wiring diagram or photo of the breadboard and everything so I don’t have to reinvent the wheel or spend too much time figuring that part out. Been a while since I’ve built electronics but I’ve still got all my stuff so might as well try this. :) Awesome.
I'd be glad to, code is on my computer at home. I'll try to put together a wiring diagram as well... My breadboard is a mess, it will only cause confusion.
 

wattson

Valuable Member
View Badges
Joined
Feb 6, 2014
Messages
1,135
Reaction score
692
Location
United States
Rating - 0%
0   0   0
looking for a sweep that a power head goes on like yours..yours is a way better idea than the sea sweep version,,your version ,,any kind of wave maker can be put on,,which is better in the long run..plus leaves alot more adjustablality for different wave makers to be used..
 
OP
OP
mstockmaster

mstockmaster

Active Member
View Badges
Joined
Mar 6, 2017
Messages
318
Reaction score
285
Location
Columbus Ohio
Rating - 0%
0   0   0
looking for a sweep that a power head goes on like yours..yours is a way better idea than the sea sweep version,,your version ,,any kind of wave maker can be put on,,which is better in the long run..plus leaves alot more adjustablality for different wave makers to be used..
Only time will tell how durable my solution really is. But thank you for the kind words.
 
OP
OP
mstockmaster

mstockmaster

Active Member
View Badges
Joined
Mar 6, 2017
Messages
318
Reaction score
285
Location
Columbus Ohio
Rating - 0%
0   0   0
Here's the code


Code:
#include <Servo.h>

Servo myservo;


int led = 13;  //set first led on pin 13
int led2 = 12; // set second led on pin 12
int led3 = 11; // set third led on pin 11
int point of sale;

const int button1Pin = 2; //attach first switch to pin 2 (sweep)
const int button2Pin = 4; //attach second switch to pin 3 (sweep with delay)
const int button3Pin = 7; //attach third switch to pin 7 (point)

int button1State = 0;
int button2State = 0;
int button3State = 0;

int potpin = 0; //attach potentiometer (middle attachment point on potentiometer) to pin 0
int val;


void setup() {

  pinMode(led, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(button1Pin, INPUT);
  pinMode(button2Pin, INPUT);
  pinMode(button3Pin, INPUT);
  myservo.attach(9); //servo signal wire is attached to pin 9 (power needs to be attached to vin will not operate on 3V or 5V)
}


void loop() {
  button1State = digitalRead(button1Pin);
  button2State = digitalRead(button2Pin);
  button3State = digitalRead(button3Pin);
  if (button1State == HIGH && button2State == LOW && button3State == LOW)
  {
    digitalWrite(led, HIGH);
    for (point of sale = 80; point of sale <= 130; point of sale += 1) //set degrees for wavemaker turn angle (0-180) my setting is 80 to 130
    {
      
      val = analogRead(potpin);

      myservo.write(point of sale);
      delay(map(val, 0, 1023, 750, 15)); //delay is set from 15 milliseconds to 750 milliseconds, you can adjust as needed
      Serial.println(point of sale);
    }
    for (point of sale = 130; point of sale >= 80; point of sale -= 1)  //set degrees for wavemaker turn angle (0-180) my setting is 80 to 130
    {
      val = analogRead(potpin);
      myservo.write(point of sale);
      delay(map(val, 0, 1023, 750, 15));  //delay is set from 15 milliseconds to 750 milliseconds, you can adjust as needed
      Serial.println(point of sale);;
    }
  }
  else if (button1State == LOW && button2State == HIGH && button3State == LOW);
  digitalWrite(led, LOW);
  if (button1State == LOW && button2State == HIGH && button3State == LOW)
  {
    digitalWrite(led2, HIGH);
    val = analogRead(potpin);
    for (point of sale = 90; point of sale <= 130; point of sale += 1) //set degrees for wavemaker turn angle (0-180) my setting is 90 to 130
    {
      myservo.write(point of sale);
      delay(40);
    }

    delay(map(val, 0, 1023, 60000, 1000)); //delay at end of sweep will be set from 1000 milliseconds (1 second) to 60,000 milliseconds (1 minute) depending on position of potentiometer.  Can edit if necessary

    for (point of sale = 130; point of sale >= 90; point of sale -= 1)//set degrees for wavemaker turn angle (0-180) my setting is 90 to 130
    {
      myservo.write(point of sale);
      delay(40);
    }

    delay(map(val, 0, 1023, 60000, 1000)); //delay at end of sweep will be set from 1000 milliseconds (1 second) to 60,000 milliseconds (1 minute) depending on position of potentiometer.  Can edit if necessary
  }
  else if (button1State == HIGH && button2State == LOW && button3State == LOW);
  digitalWrite(led2, LOW);
  if (button1State == LOW && button2State == LOW && button3State == HIGH)
  {
    digitalWrite(led3, HIGH);
    val = analogRead(potpin);
    val = map(val, 0, 1023, 60, 150);
    myservo.write(val);
    delay(15);
  }
  else if (button1State == LOW && button2State == LOW && button3State == LOW);
  digitalWrite(led3, LOW);
}

Amazon can send you the rest. ;Yawn

I'll try to get the wiring (fritzing) diagram up tomorrow.
 

Reefing threads: Do you wear gear from reef brands?

  • I wear reef gear everywhere.

    Votes: 37 15.9%
  • I wear reef gear primarily at fish events and my LFS.

    Votes: 13 5.6%
  • I wear reef gear primarily for water changes and tank maintenance.

    Votes: 1 0.4%
  • I wear reef gear primarily to relax where I live.

    Votes: 30 12.9%
  • I don’t wear gear from reef brands.

    Votes: 136 58.4%
  • Other.

    Votes: 16 6.9%
Back
Top