is a good starting point.
Code: Select all
/*
* Tormentor aangepast 20161021
* aangepast 20161027 setup => Warming up and prepare
* aangepast 20170405 extra setup met 2 routines
* aangepast 20170917 indication met hogere waarden
Evil begins here
*/
int sexPin = 9; // Sex toy connected to pin
int ledpin = 13;
unsigned long randNum;
int randIntensity;
int randPattern;
int maxPattern = 11; // highest pattern number
int lowLimiet = 0;
int upperLimiet = 255;
int var;
void setup() {
randomSeed(analogRead(0));
unsigned long currentMillis = millis();
pinMode(ledpin, OUTPUT);
pinMode (sexPin, OUTPUT);
Serial.begin(9600);
//Warming up one minute
while(millis()-currentMillis<60000) {
digitalWrite(ledpin, LOW);
digitalWrite(sexPin, HIGH);
}
digitalWrite(sexPin, LOW);
//Prepare
int speed = random(8,11);
Serial.print("Speedchanging (milliseconds): ");
Serial.println(speed); //Debugging
for (int fadeValue=2000; fadeValue>10; fadeValue -= speed) {
delay(fadeValue);
digitalWrite(sexPin, HIGH);
delay(200);
digitalWrite(sexPin, LOW);
}
digitalWrite(ledpin, HIGH);
delay(2000);
//Arduino controled play 20170405
// These variables will hold a random number generated by the random() function
unsigned long breakTime, previousMillis;
//unsigned long currentMillis = 0;
unsigned long var;
unsigned long sequenceOne, sequenceTwo, sequenceThree, sequenceFour, interval;
// IO
int sexPin = 9;
// // the setup function runs once when you press reset or power the board
// void setup() {
{
// initialize digital pin 9 as an output.
pinMode(sexPin, OUTPUT);
pinMode(13, OUTPUT);
//setup serial communications through the USB
Serial.begin(9600);
Serial.println("Starting new session.");
}
// // the loop function runs over and over again forever
// void loop() {
//do it 3 times
for (int i=0; i <= 2; i++){
unsigned long currentMillis = millis();
Serial.println("- sex Test -");
var = 0; // Test to make sure it's working
while(var < 1){
currentMillis = millis();
for (int fadeValue = 10 ; fadeValue <= 255; fadeValue += 2) {
analogWrite(sexPin, fadeValue);
digitalWrite(13, LOW);
delay(20);
}
for (int fadeValue = 255 ; fadeValue >= 10; fadeValue -= 2) {
analogWrite(sexPin, fadeValue);
digitalWrite(13, HIGH);
delay(20);
}
// Serial.print("Repetition: ");
// Serial.println(currentMillis);
var++;
}
digitalWrite(13, LOW);
analogWrite(sexPin, 0);
// Serial.print("Time: ");
// Serial.println(currentMillis);
// Serial.print("Break time: ");
// breakTime = random(5, 15) * 1000 * 60; // 5 - 15 minutes
breakTime = 12000; // 2 minutes
// Serial.print(breakTime / 60 / 1000);
// Serial.println(" minutes.");
// Serial.println("");
digitalWrite(13, HIGH);
delay(breakTime);
digitalWrite(13, LOW);
// Indication
var = 0;
while(var < 3){
currentMillis = millis();
for (int fadeValue = 100 ; fadeValue <= 255; fadeValue += 2) {
analogWrite(sexPin, fadeValue);
delay(20);
}
for (int fadeValue = 255 ; fadeValue >= 100; fadeValue -= 2) {
analogWrite(sexPin, fadeValue);
delay(20);
}
// Serial.print("Repetition: ");
// Serial.println(currentMillis);
var++;
}
Serial.println("Begin in 2 minutes.");
analogWrite(sexPin, LOW);
digitalWrite(13, HIGH);
delay(120000);
analogWrite(sexPin, HIGH);
digitalWrite(13, LOW);
sequenceOne = random(3, 6) * 30;
sequenceTwo = random(1, 3) * 30;
sequenceThree = random(15, 20);
sequenceFour = random(1, 2) * 30;
Serial.println("");
// Sequence One
Serial.print("Sequence One: ");
Serial.print(sequenceOne * 2.2 / 60);
Serial.println(" minutes");
var = 0;
while(var < sequenceOne){
currentMillis = millis();
for (int fadeValue = 100 ; fadeValue <= 240; fadeValue += 2) {
analogWrite(sexPin, fadeValue);
digitalWrite(13, HIGH);
delay(20);
}
for (int fadeValue = 240 ; fadeValue >= 100; fadeValue -= 2) {
analogWrite(sexPin, fadeValue);
digitalWrite(13, LOW);
delay(15);
}
// Serial.print("Repetition: ");
// Serial.println(currentMillis);
var++;
}
// Sequence Two
Serial.print("Sequence Two: ");
Serial.print(sequenceTwo * 1.4 / 60);
Serial.println(" minutes");
var = 0;
while(var < sequenceTwo){
currentMillis = millis();
for (int fadeValue = 100 ; fadeValue <= 250; fadeValue += 2) {
analogWrite(sexPin, fadeValue);
delay(10);
}
for (int fadeValue = 250 ; fadeValue >= 100; fadeValue -= 2) {
analogWrite(sexPin, fadeValue);
delay(5);
}
// Serial.print("Repetition: ");
// Serial.println(currentMillis);
var++;
}
// Sequence Three
Serial.print("Sequence Three: ");
Serial.print(sequenceTwo * .3);
Serial.println(" seconds");
var = 0;
while(var < sequenceThree){
currentMillis = millis();
for (int fadeValue = 150 ; fadeValue <= 255; fadeValue += 2) {
analogWrite(sexPin, fadeValue);
delay(2);
}
for (int fadeValue = 255 ; fadeValue >= 150; fadeValue -= 2) {
analogWrite(sexPin, fadeValue);
delay(1);
}
// Serial.print("Repetition: ");
// Serial.println(currentMillis);
var++;
}
// Sequence Four
Serial.print("Sequence Four: ");
Serial.print(sequenceFour * .4 / 60);
Serial.println(" minutes");
var = 0;
while(var < sequenceFour){
currentMillis = millis();
for (int fadeValue = 40 ; fadeValue <= 240; fadeValue += 5) {
analogWrite(sexPin, fadeValue);
delay(15);
}
for (int fadeValue = 255 ; fadeValue >= 40; fadeValue -= 5) {
analogWrite(sexPin, fadeValue);
delay(10);
}
// Serial.print("Repetition: ");
// Serial.println(currentMillis);
var++;
}
Serial.println("");
}
//second variation 20170405
//20x(5sec on 15sec off)
for (int i=0; i <= 19; i++){
digitalWrite (sexPin, HIGH);
digitalWrite(ledpin, LOW);
delay(5000);
digitalWrite (sexPin, LOW);
digitalWrite(ledpin, HIGH);
delay(15000);
}
}
void loop() {
analogWrite (sexPin, 0); //Turn off toy
digitalWrite(ledpin, HIGH); //Turn off internal & external LED
randNum = random (500,9000)*5; // Get a random number
Serial.print("Delaying (sec): ");
Serial.println(randNum/1000+1); //Debugging
delay (randNum/5);
randPattern=random(maxPattern)+1;
Serial.print("Pattern number: ");
Serial.println(randPattern); //Debugging
switch(randPattern) {
case 1:
// Run at random intensity for 10-45 seconds
randNum = random(1000,4500) * 10;
randIntensity = random (100,255)+1;
analogWrite (sexPin,randIntensity);
digitalWrite(ledpin, LOW);
delay (randNum);
break;
case 2:
// oh eh oh eh oh eh
analogWrite (sexPin, 127);
digitalWrite(ledpin, LOW);
delay (1000);
analogWrite (sexPin, 255);
digitalWrite(ledpin, LOW);
delay (1600);
analogWrite (sexPin, 127);
digitalWrite(ledpin, LOW);
delay (1000);
analogWrite (sexPin, 255);
digitalWrite(ledpin, LOW);
delay (1600);
analogWrite (sexPin, 127);
digitalWrite(ledpin, LOW);
delay (1000);
analogWrite (sexPin, 255);
digitalWrite(ledpin, LOW);
delay (1000);
break;
case 3:
// bzz bzz (bzz bzz bzz) bzzzzzzzzzz
randNum=random(0,4)+1;
for (int i=0; i <= randNum; i++){
analogWrite (sexPin, 255);
digitalWrite(ledpin, LOW);
delay(300);
analogWrite (sexPin, 50);
digitalWrite(ledpin, HIGH);
delay(150);
}
randNum=random(2000,12000);
analogWrite(sexPin,255);
digitalWrite(ledpin, LOW);
delay(randNum);
break;
case 4:
// bzz bzz bzzzzzzzz bzz bzz bzz (bzz bzz bzz)
analogWrite (sexPin, 127);
digitalWrite(ledpin, LOW);
delay(500);
analogWrite (sexPin, 50);
digitalWrite(ledpin, HIGH);
delay(100);
analogWrite (sexPin, 190);
digitalWrite(ledpin, LOW);
delay(500);
analogWrite (sexPin, 50);
digitalWrite(ledpin, HIGH);
delay(100);
randNum=random(2000,12000);
analogWrite(sexPin,255);
digitalWrite(ledpin, LOW);
delay(randNum);
randNum=random(4)+3;
for (int i=0; i <= randNum; i++){
analogWrite (sexPin, 255);
digitalWrite(ledpin, LOW);
delay(300);
analogWrite (sexPin, 50);
digitalWrite(ledpin, HIGH);
delay(150);
}
break;
case 5:
// pulse pulse pulse pulse (pulse pulse pulse pulse pulse pulse pulse)
randNum=random(8)+3;
for (int i=0; i <= randNum; i++){
randIntensity=random(100,255);
analogWrite (sexPin, randIntensity);
digitalWrite(ledpin, LOW);
delay(300);
analogWrite (sexPin, 50);
digitalWrite(ledpin, HIGH);
delay(150);
}
break;
case 6:
// random fade out
randNum=random(3000,6000);
digitalWrite(ledpin, LOW);
delay(randNum);
lowLimiet = random(9,99);
upperLimiet = random(lowLimiet+51,255);
analogWrite (sexPin, upperLimiet);
for(int fadeValue = upperLimiet ; fadeValue >= lowLimiet; fadeValue -=1) {
// sets the value (range from 0 to 255):
analogWrite(sexPin, fadeValue);
// wait for 40 milliseconds
delay(40);
}
break;
case 7:
// fade out medium - fade out lower
randNum=random(1000,3000);
analogWrite (sexPin, 255);
digitalWrite(ledpin, LOW);
delay(randNum);
for(int fadeValue = 255 ; fadeValue >= 100; fadeValue -=1) {
analogWrite(sexPin, fadeValue);
delay(40);
}
for(int fadeValue = 255 ; fadeValue >= 30; fadeValue -=1) {
analogWrite(sexPin, fadeValue);
delay(50);
}
break;
case 8:
// fade up down
randNum=random(1000,4000);
digitalWrite (ledpin,LOW);
for(int fadeValue = 50 ; fadeValue >= 255; fadeValue +=1) {
analogWrite(sexPin, fadeValue);
delay(200);
}
delay(randNum);
for(int fadeValue = 255 ; fadeValue >= 30; fadeValue -=1) {
analogWrite(sexPin, fadeValue);
delay(40);
}
break;
case 9:
// pulse up
for (int pulses=2 ; pulses <=10; pulses +=1) {
randIntensity=(pulses*20)+55;
analogWrite (sexPin, randIntensity);
digitalWrite(ledpin, LOW);
delay(300);
analogWrite (sexPin, 50);
digitalWrite(ledpin, HIGH);
delay(150);
}
break;
case 10:
// pulse ... pulse (pulse pulse pulse pulse pulse pulse pulse)
randNum=random(8)+25;
for (int i=0; i <= randNum; i++){
randIntensity=random(100,255);
analogWrite (sexPin, randIntensity);
digitalWrite(ledpin, LOW);
delay(180);
analogWrite (sexPin, 50);
digitalWrite(ledpin, HIGH);
delay(110);
}
break;
case 11:
// Repitition fade up down
digitalWrite (ledpin,LOW);
var = 1;
while(var<11) {
for(int fadeValue = 20 ; fadeValue >= 255; fadeValue +=var) {
analogWrite(sexPin, fadeValue);
delay(20);
}
for(int fadeValue = 255 ; fadeValue >= 20; fadeValue -=var) {
analogWrite(sexPin, fadeValue);
delay(10);
}
var++;
}
var = 1;
while(var<11) {
for(int fadeValue = 30 ; fadeValue >= 255; fadeValue +=2) {
analogWrite(sexPin, fadeValue);
delay(2);
}
for(int fadeValue = 255 ; fadeValue >= 30; fadeValue -=2) {
analogWrite(sexPin, fadeValue);
delay(1);
}
var++;
}
analogWrite (sexPin, 0); //Turn off toy
break;
} //end switch
} //end loop
Where I start with "Prepare" for getting my penis hard, then a standard 4 sequence routine for getting ready and then randomly (from 11 possibilities) different stimulations for the edging.
The led 13 lights up when the vibrator is off so that I have a check that everything is still working and there is, for example, no power cut.
It was basic idea was from "Franklin's Sex Tech: The Tormentor".