A semi-traditional Margarita pour requires vigorous agitation in an attempt to blend the varying viscosity fluids constructing the cocktail. As an alternative, less abusive and theoretically smoother method, we affixed an Arduino Uno to an 8 channel relay controlling 8 solenoids to drip each ingredient, of any varying recipe, one drop at a time; allowing the blend to occur in real time. The glass is held in a copper wound that a coolant fluid is pumped through. Forgive the impoverished components, both mechanical and delicious.

// Margarita Drip Infuser _ @TVMiller

int v1 = 1; int v2 = 2;
int v3 = 3; int v4 = 4;
int v5 = 5; int v6 = 6;
int v7 = 7; int v8 = 8;

int v1LED =  9; int v2LED = 10;
int v3LED = 11; int v4LED = 12;
int v5LED = 13; int v6LED = A0;
int v7LED = A1; int v8LED = A2;

int baseLED = A3;

void setup() {
pinMode(v1, OUTPUT); pinMode(v2, OUTPUT);
pinMode(v3, OUTPUT); pinMode(v4, OUTPUT);
pinMode(v5, OUTPUT); pinMode(v6, OUTPUT);
pinMode(v7, OUTPUT); pinMode(v8, OUTPUT);

pinMode(v1LED, OUTPUT); pinMode(v2LED, OUTPUT);
pinMode(v3LED, OUTPUT); pinMode(v4LED, OUTPUT);
pinMode(v5LED, OUTPUT); pinMode(v6LED, OUTPUT);
pinMode(v7LED, OUTPUT); pinMode(v8LED, OUTPUT);

// Bleed Lines
digitalWrite(v1, LOW); digitalWrite(v2, LOW);
digitalWrite(v3, LOW); digitalWrite(v4, LOW);
digitalWrite(v5, LOW); digitalWrite(v6, LOW);
digitalWrite(v7, LOW); digitalWrite(v8, LOW);
digitalWrite(v1, HIGH); digitalWrite(v2, HIGH);
digitalWrite(v3, HIGH); digitalWrite(v4, HIGH);
digitalWrite(v5, HIGH); digitalWrite(v6, HIGH);
digitalWrite(v7, HIGH); digitalWrite(v8, HIGH);

pinMode(baseLED, OUTPUT);

void loop() {

digitalWrite(baseLED, HIGH);

// Recipe
for (int i=0; i <= 22; i++){ 
v4run(); v5run(); v6run(); // 1
v1run(); v2run(); v7run(); // 2
v4run(); v5run(); v6run(); // 3
v1run(); v2run(); v7run(); // 4
v3run(); v4run(); v5run(); v6run(); // 5
v1run(); v2run(); v7run(); // 6
v4run(); v5run(); v6run(); // 7
v1run(); v2run(); v7run(); // 8
v3run(); v4run(); v5run(); v6run(); v8run(); // 9
v1run(); v2run(); v7run(); // 10

// Alert Finish
digitalWrite(v1LED, HIGH); digitalWrite(v2LED, HIGH);
digitalWrite(v3LED, HIGH); digitalWrite(v4LED, HIGH);
digitalWrite(v5LED, HIGH); digitalWrite(v6LED, HIGH);
digitalWrite(v7LED, HIGH); digitalWrite(v8LED, HIGH);
digitalWrite(v1LED, LOW); digitalWrite(v2LED, LOW);
digitalWrite(v3LED, LOW); digitalWrite(v4LED, LOW);
digitalWrite(v5LED, LOW); digitalWrite(v6LED, LOW);
digitalWrite(v7LED, LOW); digitalWrite(v8LED, LOW);

while(1) { } // Endless Loop


// Tequila 0.75 oz
void v1run() {
digitalWrite(v1LED, HIGH);
digitalWrite(v1, LOW);
digitalWrite(v1, HIGH);
digitalWrite(v1LED, LOW);

// Tequila 0.75 oz
void v2run() {
digitalWrite(v2LED, HIGH);
digitalWrite(v2, LOW);
digitalWrite(v2, HIGH);
digitalWrite(v2LED, LOW);

// Triple Sec 0.5 oz
void v3run() {
digitalWrite(v3LED, HIGH);
digitalWrite(v3, LOW);
digitalWrite(v3, HIGH);
digitalWrite(v3LED, LOW);

// Lime 0.75 oz
void v4run() {
digitalWrite(v4LED, HIGH);
digitalWrite(v4, LOW);
digitalWrite(v4, HIGH);
digitalWrite(v4LED, LOW);

// Lemon 0.75 oz
void v5run() {
digitalWrite(v5LED, HIGH);
digitalWrite(v5, LOW);
digitalWrite(v5, HIGH);
digitalWrite(v5LED, LOW);

// Simple Syrup 0.75 oz
void v6run() {
digitalWrite(v6LED, HIGH);
digitalWrite(v6, LOW);
digitalWrite(v6, HIGH);
digitalWrite(v6LED, LOW);

// Gran 0.75 oz
void v7run() {
digitalWrite(v7LED, HIGH);
digitalWrite(v7, LOW);
digitalWrite(v7, HIGH);
digitalWrite(v7LED, LOW);

// Agave (alt Juice) 0.25 oz
void v8run() {
digitalWrite(v8LED, HIGH);
digitalWrite(v8, LOW);
digitalWrite(v8, HIGH);
digitalWrite(v8LED, LOW);

About This Instructable




Bio: Privateer
More by TVMiller:Arduino Splash Resistant Toilet Foamer Arduino Motion Mute 1992 Isuzu Trooper Windshield Wiper Single Button Hack 
Add instructable to: